Patent Description:
One issue to be addressed in the implementation of practical AR systems is a determination of what AR information is to be displayed and when it should be displayed. If too much information is displayed at once, the burden on a user may be too great. The display of excessive amounts of information may cause stress and burnout for a user and may lead to a user making mistakes, shutting down applications, or unsubscribing from applications. If too little information is displayed, the process becomes inefficient, and the user may become bored or annoyed, leading to a user shutting down of unsubscribing from applications. An example of prior art may be found in <CIT> relating to a method for providing an augmented reality user interface comprising classifying detected AR information into groups according to specific property information and displaying the groups of AR information separately.

Systems and methods described herein are provided for temporally distributing the display of augmented reality (AR) information in a manner that manages the cognitive demand placed on a user. In an exemplary embodiment, each item of AR information is associated with a respective real-world object. A cognitive demand score is determined for each item together with its associated real-world object. AR information items are distributed among a plurality of sets in such a way that (i) the total cognitive demand scores in the respective sets are substantially equalized and (ii) AR information items within a set do not obscure one another. Each set of AR information items is then displayed sequentially, with items in the same set being displayed at the same time and items in different sets being displayed at different times.

In some embodiments, systems and methods described herein compute a cognitive demand score for each pair of real-world object identification information and an AR information item based on visual characteristics of the real-world object and complexity and size of the AR information item (such as number of words or characters). Systems and methods described herein partition received pairs into two or more sets, such that the resulting sets of pairs are of approximately equal aggregate cognitive demand on a user. These sets are presented to the user one set of pairs at a time. AR information is presented to the user in a manner that reduces the peak aggregate cognitive demand on the user.

The density of information for content presentation may be high and unevenly distributed over a display area. Previous systems do not determine implications that may arise in presenting AR content. Systems and methods described herein manage presentation of AR information on a display device based on cognitive load of the content and deal with complications due to content being tied to physical objects in a scene and the potential for content to obscure other content elements.

In some embodiments, exemplary systems and methods described here are passive and continue to execute, even if the user is not taking the initiative. The user may gradually become more familiar with his or her surroundings in a casual, intuitive manner. In some embodiments, systems and methods detect changes to a user's scene and respond appropriately. Systems and methods may be instantiated on top of existing AR applications and displays and may be combined with other techniques, such as receiving prioritized information from AR applications and taking into account a user's preferences across available AR information.

A more detailed understanding may be had from the following description, presented by way of example in conjunction with the accompanying drawings. Furthermore, like reference numerals in the figures indicate like elements.

The entities, connections, arrangements, and the like that are depicted in, and in connection with, the various figures are presented by way of example and not by way of limitation. As such, any and all statements or other indications as to what a particular figure depicts, what a particular element or entity in a particular figure is or has, and any and all similar statements, that may in isolation and out of context be read as absolute and therefore limiting, may only properly be read as being constructively preceded by a clause such as "In at least one embodiment,. " For brevity and clarity of presentation, this implied leading clause is not repeated ad nauseum in the detailed description of the drawings.

One technique for selecting AR information to be displayed to a user is to display AR information about real-world objects that are in a user's field of view, including objects that may be too far away to be discerned by the user. Such a technique, however, may overwhelm a user with AR information, such as environments with many real-world objects in the user's field of view in which information is available for presentation to the user. Such information may become less and less relevant to the user.

Another technique for selecting AR information to be displayed to a user is to display AR information only for real-world objects on which a user's gaze rests. Such a technique, however, would not operate to communicate unanticipated or unknown information to the user, and it calls for the user to actively select objects (by directing her gaze) about which information is to be displayed. Moreover, such a technique would not readily accommodate simultaneous display of information on multiple different objects.

Systems and methods described herein present augmented reality (AR) information in a manner that reduces the aggregate cognitive demand placed upon the user from having to process concurrently-presented AR information items. One embodiment partitions available items into two or more sets to approximately balance aggregate cognitive demand placed on a user. These sets may be presented serially, such that all AR items in one set are presented, followed by all AR items in another set, and so on. Peak cognitive demand (maximum demand for all of these sets) placed on a user is minimized.

Available AR items are partitioned into two or more sets to approximately balance aggregate cognitive demand on the user, so that peak aggregate cognitive aggregate cognitive demand is reduced. A cognitive load is how much mental effort a user exerts. Cognitive demand of an information item is how much mental effort a user exerts to process that information item, such as to view, reason (or analyze), and act upon.

For some embodiments, cognitive demand of each object (e.g., its complexity) is determined, and sets are partitioned such that the sets are (approximately) balanced in terms of combined cognitive demands and also such that each set avoids conflicts between objects. For such an embodiment, AR information is displayed one set at a time.

<FIG> is a block diagram of an exemplary embodiment of an AR system <NUM>. In system <NUM>, one or more scene sensors <NUM> (for example, a camera or LIDAR) provides scene information <NUM> (e.g., as a point cloud) to an AR Partition Builder <NUM>. One or more location sensors <NUM> provide location information <NUM>, providing the user's location to AR Partition Builder <NUM>. AR Partition Builder <NUM>. receives scene information <NUM> and location information <NUM> from respective sensors and sends combined scene and location information <NUM> to one or more appropriate (e.g., subscribed) AR applications (AR Apps) <NUM>. AR Apps <NUM> uses the received information <NUM> to produce a set of pairs <NUM> of identified real-world objects and corresponding augmentation information (AR data). Each pair, in set of pairs <NUM> includes information identifying a real-world object (possibly using an identification by location coordinates that includes an image of the object and boundary coordinates) along with associated AR data that provides information about the real-world object and may also describe how to render that information in an AR display. AR Apps <NUM> then provides set of pairs <NUM> to AR Partition Builder <NUM>.

AR Partition Builder <NUM> sends set of pairs <NUM> to the Cognitive Demand Estimator <NUM>. Cognitive Demand Estimator <NUM> calculates a cognitive demand score <NUM> that each pair may place on a user, based on the size and complexity of an image of the real-world object in the pair and the amount and complexity of information in the AR information item in the pair. Cognitive Demand Estimator <NUM> sends cognitive demand score <NUM> to AR Partition Builder <NUM> for each pair in set of pairs <NUM>. Based on the received cognitive demand scores and scene characteristics (to determine occlusion), an AR Partition Builder <NUM> partitions set of pairs <NUM> into two or more sets. AR Partition Builder <NUM> sends the sets of pairs as highlighted objects and AR information <NUM> to the AR Display <NUM>, to be displayed one at a time. If a location or scene changes significantly based on received information, AR Partition Builder <NUM> may request revised cognitive demand scores from Cognitive Demand Estimator <NUM> and form a revised partition of the set of pairs <NUM>.

<FIG> is a flowchart of an exemplary method <NUM> of assigning pairs (real-world object image information and associated AR information) to a set. In some embodiments, each pair of information received comprises one real-world object identified by the object's geospatial coordinates and the object's image and associated AR information item that may specify and render some associated augmented information, including the name and other attributes of the real-world object. Method <NUM> is one way to assign pairs (with associated real-world objects) into two or more sets for a system that displays one set at a time. An exemplary method may comprise receiving pairs of information, assigning sets that balance aggregate cognitive demand, and displaying sets repeatedly one at a time. For some embodiments, AR information items may be assigned to sets, which may be performed for some embodiments by assigning pairs to sets.

In box <NUM> of method <NUM>, a set of pairs of information is received, for example, possibly set of pairs <NUM> which was illustrated in <FIG>. These pairings include identification of a real-world object plus corresponding AR information (Real Object + AR data). In decision box <NUM>, it is determined whether the received set is new or has a low level of similarity with a previous set of pairs (or has significant changes from a previous time a set was assigned). If not, method <NUM> proceeds to box <NUM> in which the sets are displayed iteratively. As each set is displayed, all pairs in the set are displayed simultaneously.

If the set of pairs is new, or there has been significant change, as determined in decision box <NUM>, cognitive demand scores are calculated for each received pair in box <NUM>. For some embodiments, a cognitive demand score for a pair is calculated based on the cognitive demand placed on a user for both the real-world object and the AR information item. The cognitive demand score may be calculated based on the complexity or size of the real-world object, because a user may consume mental energy if his or her attention is drawn to the real-world object (which may occur due to AR information being present). The user may consume mental energy if he or she reviews the AR information.

For some embodiments, a raw score is determined by multiplying a real-world object sub-score by an AR information item sub-score. A cognitive demand score is determined by normalizing the highest raw score to <NUM> and scaling all the other raw scores by the same ratio as the highest raw score. For some embodiments, a real-world object sub-score is determined by summing a size value and a complexity value. A size value may be determined based on the angle subtended. A subtended angle is measured by extending two straight lines from a user's view point to the farthest opposing points on the boundary of a real-world object and maximizing the angle made by the two straight lines. For some embodiments, a size value of <NUM> is used if the subtended angle is less than <NUM> degrees. A size value of <NUM> is used if the subtended angle is between <NUM> and <NUM> degrees. A size value of <NUM> is used if the subtended angle is between <NUM> and <NUM> degrees. A size value of <NUM> is used if the subtended angle is more than <NUM> degrees. A complexity value may be determined based on the complexity of the image of the real-world object as determined by an object's compressed size (which may be expressed in mega-bytes (MB) or other units).

For some embodiments, an AR information item sub-score is determined by summing the complexity of any text in the AR information item, the complexity of any images in the AR information item, and the complexity of any video in the AR information item. The complexity of any text in the AR information item may be calculated as the sum of the number of words in the text and the sum of the lengths of the three longest words (or the sum of the length of all the words if there are less than three words in the text). The complexity of any images in the AR information item may be calculated as the sum of the complexity of each image, which in turn may be calculated as the image's compressed size (which may be in MB). The complexity of any video in the AR information item may be calculated as the sum of ten times the length of the video in seconds plus the complexity of the most complex frame in the video, which may be calculated as the video's compressed size (which may be in MB). Some embodiments may use another method instead of image compression size to calculate image complexity.

Each entry in a set of pairs is a pairing of information identifying a real-world object (which may be specified by coordinates) and an AR information item (which is information about the real-world object). For some embodiments, to determine if a set of pairs has changed significantly, each entry in the previous set of pairs is compared to the current set. A Jaccard Index is calculated, and the set is classified as significantly changing if the Jaccard Index is below a threshold (e.g. <NUM>). To compare each entry in the previous set of pairs to the current set, let each pair in the previous set have coordinates <xp, yp, zp>, and let each pair in the current set have coordinates <xc, yc, zc>. Record two pairs as being the same if a squared distance calculation is less than a squared distance threshold (e.g., <NUM> meters<NUM>), and the AR information of the two pairs are identical (or similar). The squared distance calculation is calculated as: <MAT> For some embodiments, the squared distance is used to match entries between the previous and the current sets of pairs and determine which entries have changed. A Jaccard Index may be calculated to determine the similarity between the sets.

Use of a threshold may enable two pairs to be classified as identical if there is a small variation in the measurement of coordinates (such as due to measurement error or slight movements of a user's head and body). If AR information (or metadata) changes, that may mean that a new real-world object has moved into the position previously occupied by another object or that an AR application has changed AR information about the same real-world object. If either AR information change occurs, the change may be of value to the user.

In box <NUM>, a desired number of empty sets is created and initialized to an empty state. The existence of an unassigned pair (i.e., a pair that is not already assigned to a set) is ascertained in decision box <NUM>. Initially, this will be the case for all pairs. When all pairs have been assigned, and this condition is no longer true, method <NUM> will proceed to box <NUM>. However, until such a condition is satisfied, method <NUM> will instead proceed to box <NUM>.

If there exists an unassigned pair, a current set is iteratively selected as by selecting a set that has the smallest aggregate (or summed) cognitive demand score of pairs assigned to the set, in box <NUM>. If there is an unassigned pair that neither is occluding nor occluded by any pair already assigned to the current set, as determined in decision box <NUM>, then an unassigned pair with the highest cognitive demand score that neither occludes nor is occluded by any pair already assigned to the current set is selected and assigned to the current set in box <NUM>. Otherwise, an unassigned pair with the highest cognitive demand score is assigned to the current set in box <NUM>. After either box <NUM> or <NUM>, method <NUM> returns to decision box <NUM>.

For some embodiments, ties in aggregate demand score are broken arbitrarily. For some embodiments, assignment of sets to pairs is stopped if a maximum number of pairs to display is exceeded (or is equal to an assigned AR information item threshold). For some embodiments, if a first pair is occluded by some previously assigned pair in each set, the first pair is assigned to the set where the first pair has the least amount of occlusion from any previously assigned pair. For some embodiments, the order for handling unassigned pairs alternates between using the top pair on one of two sets, where one set is sorted with decreasing demand scores and a second set is sorted with increasing demand scores, until each pair is assigned to a set. For such embodiments, sets of objects may be more closely balanced in terms of demand scores than assigning pairs only in decreasing order of demand score.

For some embodiments, pairs are assigned to sets so that each set has a substantially equal total of demand scores for pairs assigned to a set. For other embodiments, pairs are assigned to sets to minimize the difference in total demand scores for pairs assigned to a set. See <NPL>), available at ijcai. org/Proceedings/<NUM>/Papers/<NUM>. For some embodiments, salience values are calculated for the pairs assigned to a set and sets are displayed in order of decreasing aggregate salience. For some embodiments, sets are displayed for a duration corresponding to aggregate salience (e.g., displaying sets for a duration proportional to aggregate salience with minimum and maximum limits for display time).

For some scenarios, there may be more AR information items that occlude each other than may be placed in available sets. For example, suppose there are four overlapping pairs (A, B, C, D) and three sets (S1, S2, and S3) are to be created. For this example, the pairs are in decreasing order of cognitive demand such that A > B > C > D. Three sets are initialized, and the highest demand pair, A, is assigned to set S1. The second highest demand pair, B, is assigned to set S2, and the third highest demand pair, C, is assigned to set S3. Set S3 is selected as the current set because set S3 has the smallest aggregate cognitive demand. Pair D is the only unassigned pair left, and pair D occludes (or overlaps) a pair already assigned to sets S1, S2, and S3 (pairs A, B, and C, respectively). Hence, pair D is assigned to set S3. Sets S1, S2, and S3 are displayed one at a time.

For some embodiments, each pair is assigned to a set, and if too many occluding pairs exist, some pairs may occlude other pairs assigned to one or more sets. Therefore, in such a scenario, there may be two or more occluding pairs assigned to the same set, leading to a reduced user experience. For some embodiments, if there are more occluding pairs than sets (such as was shown in the above example), the number of available sets may be expanded. A set is assigned only pairs that neither occlude nor are occluded by pairs present in the set. If a pair occludes or is occluded by a pair assigned to each set, the number of sets is increased, each set is initialized to empty, and the method repeats the process of assigning pairs to sets. Such an embodiment produces sets where no pair occludes or is occluded by another pair in a set, and the aggregate cognitive demand is lowered. Method <NUM> may be cycled, so that it repeats when a new set of pairs is received in box <NUM>.

<FIG> is another flowchart of an embodiment of assigning pairs (real-world object identification information and associated AR information) to a set. In <FIG>, a method <NUM> begins in box <NUM> with the reception of a set of K pairs of Real Object + AR data. M empty sets are generated in box <NUM>, and the following procedure is iterated for all K pairs, as indicated by box <NUM>. Box <NUM> may, for example, begin with the pair having the highest C score and work in descending order. The set m, out of the M sets, which has the lowest cognitive demand score (C score) is selected in box <NUM>. In decision box <NUM>, the current pair, denoted as pair k, is checked for occlusion with other pairs already assigned to set m. If there is no occlusion, then current pair k is added to set m, in box <NUM>. If there is occlusion, as determined in decision box <NUM>, method <NUM> proceeds to decision box <NUM>, to ascertain whether there are remaining sets in the collection of M sets. If there are, then method <NUM> selects the set having the next lowest C score, and sets this as set m in box <NUM>, before returning to decision box <NUM> with the new set designated as m. If, in decision box <NUM>, there is no set without occlusion, then pair k is added to the set having the lowest C score in box <NUM>. Box <NUM> may alternatively implement different assignment methods, as described above, such as assigning pair k based on having the lowest amount of occlusion.

After box <NUM> or <NUM>, method <NUM> proceeds to decision box <NUM> to ascertain whether all pairs have been assigned to a set. If not, method <NUM> returns to box <NUM>, to assign the next pair. Once all pairs have been assigned, method <NUM> completes in box <NUM>.

An example assignment will now be described, referenced to method <NUM> in <FIG>. In this example, there are nine pairs of real-world objects and AR information items received in box <NUM>. In decreasing order, their cognitive demand scores are <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. Three sets (A, B, and C) are generated in box <NUM>, and the pairs are handled in decreasing order of their scores. Sets A, B, and C are initially empty, so each set has an aggregate demand score of <NUM>. The highest scoring unassigned pair (with a score of <NUM>) is selected as the initial pair to place in box <NUM> (descending order iteration). Set A is identified as having the lowest aggregate score of <NUM> in box <NUM>. Set A is tied with sets B and C, so any of the sets could have been chosen on this first iteration.

Since set A is otherwise empty, there is no occlusion, as determined in decision box <NUM>, so the pair is added to set A in box <NUM>. The sets have the following assignments at this point:.

Only one of the nine sets has been assigned, so after decision box <NUM>, the next highest scoring unassigned pair with a score of <NUM> is considered next in box <NUM>. In box <NUM>, set B is identified as having the lowest aggregate score of <NUM> (tied with set C). Since set B is otherwise empty, there is no occlusion, as determined in decision box <NUM>, so the pair is added to set B in box <NUM>. The sets have the following assignments at this point:.

Only two of the nine sets have been assigned, so after decision box <NUM>, the next highest scoring unassigned pair with a score of <NUM> is considered next in box <NUM>. In box <NUM>, set C is identified as having the lowest aggregate score of <NUM>. Since set C is otherwise empty, there is no occlusion, as determined in decision box <NUM>, so the pair is added to set C in box <NUM>. The sets have the following assignments at this point:.

Only three of the nine sets have been assigned, so after decision box <NUM>, the next highest scoring unassigned pair with a score of <NUM> is considered next in box <NUM>. In box <NUM>, set C is identified as having the lowest aggregate score of <NUM>. However, in this example, decision box <NUM> ascertains there will be occlusion. In decision box <NUM>, it is determined that sets A and B are both available, so set B is identified as having the next lowest aggregate score of <NUM> in box <NUM>. There is no occlusion by adding pair <NUM> to set B as determined in decision box <NUM>, so pair <NUM> is assigned to set B in box <NUM>. The sets have the following assignments at this point:.

The next highest scoring unassigned pair has a score of <NUM>. Set C has the lowest aggregate score of <NUM>. Because pair <NUM> has no occlusions with set C, pair <NUM> is assigned to set C. The sets have the following assignments at this point:.

The next highest scoring unassigned pair has a score of <NUM>. Set A has the lowest aggregate score of <NUM>. Because pair <NUM> has no occlusions with set A, pair <NUM> is assigned to set A. The sets have the following assignments at this point:.

The next highest scoring unassigned pair has a score of <NUM>. Set B has the lowest aggregate score of <NUM>. Because pair <NUM> has no occlusions with set B, pair <NUM> is assigned to Set B. The sets have the following final assignments:.

At this point, all nine of the sets have been assigned, so after decision box <NUM>, this is the final assignment for this example. Method <NUM> may be cycled, so that it repeats when a new set of pairs is received in box <NUM>.

<FIG> and <FIG> have thus described methods of receiving and processing a plurality of AR annotations which are to be displayed display on a user device, and which are paired with indications of real-world objects. The methods <NUM> and <NUM> include determining a cognitive demand score for each of the received AR annotations (or pairs of AR data and real object indications), and also assigning each of the AR annotations to one of a set of annotation display groups. When assigning the AR annotations, the methods attempt to balance aggregate cognitive demand scores across the different sets. This results in each display group having an aggregate cognitive demand score (that is the sum of all AR annotation scores within that group) approximately equal to the aggregate cognitive demand score of each of the other display groups. There may be unavoidable differences preventing perfect equality, due to variations in the individual AR annotations. Additionally, attempts to balance aggregate cognitive demand scores may be constrained by minimizing occlusion among the AR annotations assigned to the same annotation display group. In the immediately preceding example, some of the aggregate scores differed by <NUM> (<NUM> versus <NUM>).

Additionally, the methods (for example, method <NUM> of <FIG>), describe receiving another plurality of AR annotations to display on the user device, determining a similarity between the newer received plurality of AR annotations and the earlier received plurality of AR annotations, and if the different sets are not sufficiently similar (determined by comparing a calculated distance with a threshold), generating a new set of annotation display groups and repeating the assignment process.

<FIG> is an exemplary message sequence diagram <NUM> for assigning pairs to sets and augmenting a display with AR information. <FIG> will be described using the embodiment illustrated in <FIG>. A scene sensor <NUM> (e.g., a camera or LiDAR system) on a user device <NUM> sends scene information <NUM> to AR Partition Builder <NUM>. AR Partition Builder <NUM> also receives location information <NUM> from a location sensor <NUM>, also on user device <NUM>. The scene and location information <NUM> may be sent to an AR application <NUM> or information service on a network or cloud node <NUM>. There may be one or more AR applications <NUM> receiving such scene and location information <NUM>. AR Partition Builder <NUM>, which may be on user device <NUM> or a network node <NUM>, receives pairs <NUM> (Real Object + AR data) from an AR application <NUM>. Pairs <NUM> are sent to Cognitive Demand Estimator <NUM>, which may be on either user device <NUM> or a network node <NUM>, and cognitive demand scores <NUM> are then received by AR Partition Builder <NUM> for each pair. AR Partition Builder <NUM> assigns pairs in process <NUM> to sets so as to balance cognitive demand and minimize occlusion of pairs by other pairs in the same set. Process <NUM> may take the form of method <NUM> or <NUM> or some combination. AR Partition Builder <NUM> may iteratively determine sets of pairs based on time (e.g., a new set of pairs may be selected every five seconds) in process <NUM> and may select pairs contained in a current set for display in process <NUM>. AR Partition Builder <NUM> sends a scene augmented with selected AR information items (perhaps similar to AR information <NUM>) to AR display <NUM> in process <NUM> (which may be similar to box 293of method <NUM>).

As <FIG> illustrates, some portions of message sequence diagram <NUM> correspond to different nodes. For example, user device <NUM> may receive scene and location data <NUM>, transmit the received scene and location data <NUM> to remote AR node <NUM>, and receive AR annotations (part of pairs <NUM>) back from remote AR node <NUM>. Some portions of message sequence diagram <NUM> indicate that different processes may be performed at different nodes. For example, cognitive demand scores <NUM> may be calculated either locally on user device <NUM> or at a remote node <NUM> (either the one that furnished pairs <NUM> or a different node). While <FIG> shows particular acts being performed at certain locations, e.g., the User's Device, Cloud or Device, Cloud, it should be understood that these are examples and these acts may be performed by processing at any of these locations, or combinations thereof.

When the AR annotations are displayed, the display is exclusive to a particular annotation display group. That is, when displaying AR annotations assigned to a first one of the plurality of annotation display groups, AR annotations are not displayed that are assigned to a second one of the first plurality of annotation display groups or any other annotation display group. And also, when displaying AR annotations assigned to the second one of the plurality of annotation display groups, AR annotations are not displayed that are assigned to the first one of the first plurality of annotation display groups or any other annotation display group. The different annotation display groups may be displayed cyclically (i.e., iteratively, one at a time, and repeating until the set of display groups changes).

<FIG> is a plan-view schematic <NUM> of an example scene with real-world objects and AR information items. A user is shown as a solid black diamond <NUM> in the center of <FIG>. The chevron <NUM> indicates the user's view angle (the interior angle of the chevron). Received AR information items are shown as squares. Some AR information items 503a-<NUM> are behind the user and are not displayed on the user's device. Some AR applications may use AR information items outside the user's field of view to buffer these, in the event the user rapidly pivots and changes the field of view. Such buffering reduces the undesirable effects of network latency, so that whichever ones of the AR information items 503a-<NUM> that become newly visible may be displayed relatively rapidly.

The numbered squares are AR information items that may be used for display and match the exemplary assignment of nine items to sets A, B, and C that was described above. Exemplary screenshots for this arrangement of pairings and sets are shown in <FIG>.

<FIG> is a series of screen shots <NUM> and 602A-602C for an example AR display. Screen shot <NUM> illustrates what an AR display would show without using systems and methods described herein. Screen shot 602A illustrates what an AR display would show when using systems and methods described herein to create and display set A (see <FIG>) for a user. The numbers in the rectangles represent augmented information along with a pair's cognitive demand score. Screen shots 602B and 602C illustrate what an AR display would show when creating and displaying sets B and C (see <FIG>) for a user, respectively.

In some embodiments, a history is stored for sets of pairs and the sets created for those sets of pairs. Such stored information may be used to provide continuity in the user experience, so that sets of pairs displayed may be picked from a rotation that was interrupted earlier.

For example, a user is looking in one direction and sets A, B, and C are created. Set A is displayed first, and then set B. Set B is interrupted, and before set C is displayed, the user looks away. The set of pairs changes, resulting in sets D, E, and F. Set D is displayed, and then the user looks in the same direction as before. Without a history storage, sets of pairs may be calculated afresh and displayed anew. With a history storage, the previously calculated sets may be retrieved for sets A, B, and C. Displaying of the sets may begin with set B because set B was interrupted previously.

In some embodiments, cognitive demand of a pair on a user may use the level of lighting of the real-world object. An object lying in a dark part of a scene may be determined to be more cognitively demanding than an objecting lying in a bright part of the scene.

A wireless transmit/receive unit (WTRU) may be used as an AR display, an AR application, or a user's device in embodiments described herein. <FIG> depicts an example WTRU <NUM>. WTRU <NUM> may include a processor <NUM>, a transceiver <NUM>, a transmit/receive element <NUM>, a speaker/microphone <NUM>, a keypad <NUM>, a display/touchpad <NUM>, a non-removable memory <NUM>, a removable memory <NUM>, a power source <NUM>, a global positioning system (GPS) chipset <NUM>, and other peripherals <NUM>. The transceiver <NUM> may be implemented as a component of decoder logic in communication interface <NUM>. For example, the transceiver <NUM> and decoder logic within communication interface <NUM> may be implemented on a single LTE or LTE-A chip. The decoder logic may include a processor operative to perform instructions stored in a non-transitory computer-readable medium. As an alternative, or in addition, the decoder logic may be implemented using custom and/or programmable digital logic circuitry.

Processor <NUM> may be a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Array (FPGAs) circuits, any other type of integrated circuit (IC), a state machine, and the like. Processor <NUM> may perform signal coding, data processing, power control, input/output processing, and/or any other functionality that enables WTRU <NUM> to operate in a wireless environment. Processor <NUM> may be coupled to transceiver <NUM>, which may be coupled to transmit/receive element <NUM>. While <FIG> depicts processor <NUM> and transceiver <NUM> as separate components, processor <NUM> and transceiver <NUM> may be integrated together in an electronic package or chip.

Transmit/receive element <NUM> may be configured to transmit signals to, or receive signals from, a base station over an air interface <NUM>. For example, in some embodiments, transmit/receive element <NUM> may be an antenna configured to transmit and/or receive RF signals. In another embodiment, transmit/receive element <NUM> may be an emitter/detector configured to transmit and/or receive IR, UV, or visible light signals, as examples. In yet another embodiment, transmit/receive element <NUM> may be configured to transmit and receive both RF and light signals. Transmit/receive element <NUM> may be configured to transmit and/or receive any combination of wireless signals.

In addition, although transmit/receive element <NUM> is depicted in <FIG> as a single element, WTRU <NUM> may include any number of transmit/receive elements <NUM>. More specifically, WTRU <NUM> may employ MIMO technology. Thus, in some embodiments, WTRU <NUM> may include two or more transmit/receive elements <NUM> (e.g., multiple antennas) for transmitting and receiving wireless signals over air interface <NUM>.

Transceiver <NUM> may be configured to modulate the signals that are to be transmitted by transmit/receive element <NUM> and to demodulate the signals that are received by transmit/receive element <NUM>. As noted above, WTRU <NUM> may have multi-mode capabilities. Thus, transceiver <NUM> may include multiple transceivers for enabling the WTRU <NUM> to communicate via multiple RATs, such as UTRA and IEEE <NUM>, as examples.

Processor <NUM> of WTRU <NUM> may be coupled to, and may receive user input data from, speaker/microphone <NUM>, keypad <NUM>, and/or display/touchpad <NUM> (e.g., a liquid crystal display (LCD) display unit or organic light-emitting diode (OLED) display unit). Processor <NUM> may also output user data to speaker/microphone <NUM>, keypad <NUM>, and/or display/touchpad <NUM>. In addition, processor <NUM> may access information from, and store data in, any type of suitable memory, such as non-removable memory <NUM> and/or removable memory <NUM>. Non-removable memory <NUM> may include random-access memory (RAM), read-only memory (ROM), a hard disk, or any other type of memory storage device. Removable memory <NUM> may include a subscriber identity module (SIM) card, a memory stick, a secure digital (SD) memory card, and the like. Non-removable memory <NUM> and removable memory <NUM> both comprise non-transitory computer-readable media. In other embodiments, processor <NUM> may access information from, and store data in, memory that is not physically located on the WTRU <NUM>, such as on a server or a home computer (not shown).

Processor <NUM> may receive power from power source <NUM>, and may be configured to distribute and/or control the power to the other components in WTRU <NUM>. Power source <NUM> may be any suitable device for powering WTRU <NUM>. As examples, power source <NUM> may include one or more dry cell batteries (e.g., nickel-cadmium (NiCd), nickel-zinc (NiZn), nickel metal hydride (NiMH), lithium-ion (Li-ion), and the like), solar cells, fuel cells, and the like.

Processor <NUM> may also be coupled to GPS chipset <NUM>, which may be configured to provide location information (e.g., longitude and latitude) regarding the current location of WTRU <NUM>. In addition to, or in lieu of, the information from GPS chipset <NUM>, WTRU <NUM> may receive location information over air interface <NUM> from a base station and/or determine its location based on the timing of the signals being received from two or more nearby base stations. WTRU <NUM> may acquire location information by way of any suitable location-determination method while remaining consistent with an embodiment.

Processor <NUM> may further be coupled to other peripherals <NUM>, which may include one or more software and/or hardware modules that provide additional features, functionality and/or wired or wireless connectivity. For example, peripherals <NUM> may include an accelerometer, an e-compass, a satellite transceiver, a digital camera (for photographs or video), a universal serial bus (USB) port, a vibration device, a television transceiver, a hands free headset, a Bluetooth® module, a frequency modulated (FM) radio unit, a digital music player, a media player, a video game player module, an Internet browser, and the like.

<FIG> depicts an exemplary network entity <NUM> that may be used within embodiments of systems described herein. As depicted in <FIG>, a network entity <NUM> includes a communication interface <NUM>, a processor <NUM>, and non-transitory data storage <NUM>, all of which are communicatively linked by a bus, network, or other communication path <NUM>.

Communication interface <NUM> may include one or more wired communication interfaces and/or one or more wireless-communication interfaces. With respect to wired communication, communication interface <NUM> may include one or more interfaces such as Ethernet interfaces, as an example. With respect to wireless communication, communication interface <NUM> may include components such as one or more antennae, one or more transceivers/chipsets designed and configured for one or more types of wireless (e.g., LTE) communication, and/or any other components deemed suitable by those of skill in the relevant art. And further with respect to wireless communication, communication interface <NUM> may be equipped at a scale and with a configuration appropriate for acting on the network side, rather than the client side, of wireless communications (e.g., LTE communications, Wi-Fi communications, and the like). Thus, communication interface <NUM> may include the appropriate equipment and circuitry (including multiple transceivers) for serving multiple mobile stations, UEs, or other access terminals in a coverage area.

Processor <NUM> may include one or more processors of any type deemed suitable by those of skill in the relevant art, some examples including a general-purpose microprocessor and a dedicated DSP. Data storage <NUM> may take the form of any non-transitory computer-readable medium or combination of such media, some examples including flash memory, read-only memory (ROM), and random-access memory (RAM) to name but a few, as any one or more types of non-transitory data storage deemed suitable by those of skill in the relevant art may be used. As depicted in <FIG>, data storage <NUM> contains program instructions <NUM> executable by processor <NUM> for carrying out various combinations of the various network-entity functions described herein.

In some embodiments, the network-entity functions described herein are carried out by a network entity having a structure similar to that of network entity <NUM> of <FIG>. In some embodiments, one or more of such functions are carried out by a set of multiple network entities in combination, where each network entity has a structure similar to that of network entity <NUM> of <FIG>. In various different embodiments, network entity <NUM> is, or at least includes, one or more of an entity in a radio access network (RAN), an entities in a core network, a base station or network node (such as a Node-B, RNC, MGW, MSC, SGSN, GGSN, eNode B, MME), a serving gateway, a PDN gateway, an ASN gateway, an MIP-HA, and an AAA. Other network entities and/or combinations of network entities may be used in various embodiments for carrying out the network-entity functions described herein, as the foregoing set is provided by way of example and not by way of limitation.

Note that various hardware elements of one or more of the described embodiments are referred to as "modules" that carry out (i.e., perform, execute, and the like) various functions that are described herein in connection with the respective modules. As used herein, a module includes hardware (e.g., one or more processors, one or more microprocessors, one or more microcontrollers, one or more microchips, one or more application-specific integrated circuits (ASICs), one or more field programmable gate arrays (FPGAs), one or more memory devices) deemed suitable by those of skill in the relevant art for a given implementation. Each described module may also include instructions executable for carrying out the one or more functions described as being carried out by the respective module, and those instructions may take the form of or include hardware (i.e., hardwired) instructions, firmware instructions, software instructions, and/or the like, and may be stored in any suitable non-transitory computer-readable medium or media, such as commonly referred to as RAM or ROM.

Claim 1:
A computer-implemented method, comprising:
receiving a first plurality of augmented reality, AR, annotations to display on a user device;
determining a cognitive demand score for each of the received AR annotations;
assigning each of the AR annotations to one of a first plurality of annotation display groups,
wherein assigning each of the AR annotations to one of the first plurality of annotation display groups comprises balancing the aggregate cognitive demand scores across the first plurality of annotation display groups,
wherein balancing aggregate cognitive demand scores across the first plurality of annotation display groups comprises checking whether an AR annotation occludes or is occluded by an AR annotation assigned to an annotation display group and assigning the AR annotation to an annotation display group such that the AR annotation neither occludes nor is occluded by any other AR annotation assigned to the same annotation display group; and
sequentially sending, to a display, each one of the first plurality of annotation display groups such that AR annotations in the same annotation display group are displayed at the same time, and AR annotations in different annotation display groups are displayed at different times.