Abstract:
A method for tag-based search includes capturing an image, extracting a tag from the image, identifying a location associated with the captured image, and querying stored content for information that matches the location and the tag. Local storage is checked for the information first, and remote storage may be checked subsequently. Any located information may be used to augment the image. Information located in the remote storage may be saved in the local storage until it reaches a certain age, until it fails to be accessed for a threshold period of time, or until the location moves outside a threshold radius associated with a location of the information located in the remote storage.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    The present invention relates generally to mobile computing and relates more specifically to context recognition for mobile computing applications. 
         [0002]    Context recognition allows the functions of mobile devices to be adapted to better meet the needs of the mobile devices&#39; users. Typically, context recognition involves extracting and recognizing implicit context information from a mobile device&#39;s usage situations and environment. For instance, context may be inferred based on the mobile device&#39;s location and/or orientation (e.g., as indicated by one or more sensors integrated in the mobile device, such as a location sensor, a camera/imaging element, an accelerometer, or the like). In situations where location and orientation may not be enough to infer context, machine readable labels or tags (e.g., bar codes or matrix codes) may provide additional contextual information. 
         [0003]    Mobile devices, however, may not be able to retrieve information from these tags effectively or efficiently due to the limited resources (e.g., computing power, bandwidth, physical memory, and the like) available in their small form factors. What is more, the resources that are available are typically shared by many operations; they cannot be dedicated to capturing, processing, recognizing, and contextualizing images and tags, which are nontrivial tasks that may require additional pre-processing. For instance, the quality of the images captured by most mobile devices is relatively low, and pre-processing may be required to compensate for distortion, blur, skew, low resolution, or the like before the images can be processed further. Moreover, as tags themselves become more complex (e.g., as in the case of matrix codes or multidimensional barcodes), so do the recognition methods required to retrieve information from the tags. 
       SUMMARY OF THE INVENTION 
       [0004]    A method for tag-based search includes capturing an image, extracting a tag from the image, identifying a location associated with the captured image, and querying stored content for information that matches the location and the tag. Local storage is checked for the information first, and remote storage may be checked subsequently. Any located information may be used to augment the image. Information located in the remote storage may be saved in the local storage until it reaches a certain age, until it fails to be accessed for a threshold period of time, or until the location moves outside a threshold radius associated with a location of the information located in the remote storage. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0005]    So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments. 
           [0006]      FIG. 1  is a block diagram depicting one example of a network within which embodiments of the present invention may be deployed; 
           [0007]      FIG. 2  is a flow diagram illustrating one embodiment of a method for context-aware tagging, according to the present invention; and 
           [0008]      FIG. 3  is a high-level block diagram of the context recognition method that is implemented using a general purpose computing device. 
       
    
    
     DETAILED DESCRIPTION 
       [0009]    In one embodiment, the invention is a method and apparatus for context-aware tagging for augmented reality environments. Embodiments of the invention perform context recognition by cross-relating collected geo-location information (e.g., longitude, latitude, altitude, direction, etc. as obtained from an open-air tracking system such as a global positioning system, Bluetooth beacons, cellular communications towers, radio frequency identification tags, or the like) with classified tag markers (e.g., bar codes, color codes, or the like) in a captured image. The tag markers may utilize visual, electronic, radio, infrared, ultraviolet, and/or other communications techniques. In some embodiments, the tag identifiers are non-unique, but uniqueness is resolved based on geographic and/or directional context. This creates a context within which the physical elements in the captured image can be classified. 
         [0010]      FIG. 1  is a block diagram depicting one example of a network  100  within which embodiments of the present invention may be deployed. The network  100  may be any type of communications network, such as for example, an Internet Protocol (IP) network (e.g., an IP Multimedia Subsystem (IMS) network, an asynchronous transfer mode (ATM) network, a wireless network, a cellular network, a long term evolution (LTE) network, and the like). An “IP network” is broadly defined as a network that uses Internet Protocol to exchange data packets. Additional exemplary IP networks include Voice over IP (VoIP) networks, Service over IP (SoIP) networks, and the like. 
         [0011]    In one embodiment, the network  100  may comprise a core network  102 . The core network  102  may be in communication with one or more access networks  120  and  122 . The access networks  120  and  122  may include a wireless access network (e.g., a WiFi network and the like), a cellular access network, a cable access network, a wired access network and the like. In one embodiment, the access networks  120  and  122  may all be different types of access networks, may all be the same type of access network, or some access networks may be the same type of access network and other may be different types of access networks. The core network  102  and the access networks  120  and  122  may be operated by different service providers, the same service provider or a combination thereof. 
         [0012]    In one embodiment, the core network  102  may include an application server (AS)  104  and a database (DB)  106 . Although only a single AS  104  and a single DB  106  are illustrated, it should be noted that any number of application servers  104  or databases  106  may be deployed. For instance, in one embodiment, the core network  102  comprises a portion of a cloud environment in which services and applications are supported in a highly distributed manner. 
         [0013]    In one embodiment, the AS  104  is a content server. For instance, the AS  104  may run queries against the DB  106  to locate content based on tag and/or location data, as discussed in further detail below. 
         [0014]    In one embodiment, the DB  106  is a tag database that stores a content with which tags have been associated. In one embodiment, the DB  106  stores the relationship between tag identifier (“tag-id”), location, and elements for each item of content. In a further embodiment, the DB  106  also stores a distribution of similar tags for a given location or region. In one embodiment, the DB  106  stores content relating to a plurality of subjects. In a further embodiment, multiple DBs  106  may each store content relating to a different specific subject. Additionally, the DB  106  may store augmented content generated by user endpoint devices according to methods of the present invention that are described in greater detail below. This information may be stored in encrypted form in order to protect any information that is deemed to be sensitive (e.g., geolocation data). 
         [0015]    In one embodiment, the access network  120  may be in communication with one or more user endpoint devices (also referred to as “endpoint devices” or “UE”)  108  and  110 . In one embodiment, the access network  122  may be in communication with one or more user endpoint devices  112  and  114 . In one embodiment, any of the user endpoint devices  108 ,  110 ,  112  and  114  may comprise a general purpose computer, as illustrated in  FIG. 4  and discussed below. In one embodiment, the user endpoint devices  108 ,  110 ,  112  and  114  may perform, in conjunction with the AS  104 , the methods and algorithms discussed below related to context-aware tagging. For instance, at least some of the user endpoint devices  108 ,  110 ,  112  and  114  may comprise mobile devices having integrated sensors that capture information from which context can be inferred. 
         [0016]    In one embodiment, the user endpoint devices  108 ,  110 ,  112  and  114  may be any type of endpoint device that is capable of accessing services from a cloud-based service provider, such as a desktop computer or a mobile endpoint device such as a cellular telephone, a smart phone, a tablet computer, a laptop computer, a netbook, an ultrabook, a portable media device (e.g., an MP3 player), a gaming console, a portable gaming device, and the like. It should be noted that although only four user endpoint devices are illustrated in  FIG. 1 , any number of user endpoint devices may be deployed. In one embodiment, any of the user endpoint devices may have one or more sensors integrated therein. These sensors may include, for example, location sensors, environmental sensors, acoustic sensors, position sensors, optical sensors, pressure sensors, proximity sensors, imaging sensors, and the like. The AS  104  may subscribe to the outputs of these sensors. 
         [0017]    It should be noted that the network  100  has been simplified. For example, the network  100  may include other network elements (not shown) such as border elements, routers, switches, policy servers, security devices, a content distribution network (CDN) and the like. 
         [0018]      FIG. 2  is a flow diagram illustrating one embodiment of a method  200  for context-aware tagging, according to the present invention. The method  200  may be executed, for example, by any of the user endpoint devices  108 ,  110 ,  112  and  114  illustrated in  FIG. 1 . As such, and for the purposes of illustration, reference is made in the discussion of the method  200  to exemplary user endpoint device  108 . However, it will be appreciated that the method  200  may be executed on devices other than or in addition to the user endpoint device  108 . 
         [0019]    The method  200  begins in step  202 . In step  204 , the user endpoint device  108  captures an image of an object in proximity to the user endpoint device  108 . The image is captured using an imaging sensor (e.g., camera) integrated in the user endpoint device  108 . The image includes at least one tag (e.g., a bar code, a color code, or the like). For instance, the image may depict a tree to which a machine readable label is affixed. 
         [0020]    In step  206 , the user endpoint device  108  identifies its current location (i.e., the location from which the image is captured in step  204 ) and orientation using one or more geolocation sensors integrated in the user endpoint device (e.g., a location sensor, an environmental sensor, a position sensor, a proximity sensor, an accelerometer, or the like). For instance, a global positioning sensor may provide the user endpoint device&#39;s current positional coordinates (e.g., latitude, longitude, altitude, direction, etc.), while an accelerometer may provide the current orientation of the user endpoint device  108 . In one embodiment, the location and orientation are periodically saved to local storage (e.g., cache) on the user endpoint device  108 , and the user endpoint device  108  simply retrieves the most recent saved location and position in step  206 . In another embodiment, the current location and position are identified on-demand in step  206  and subsequently saved to the local storage. 
         [0021]    In step  208 , the user endpoint device  108  extracts the tag from the image captured in step  204 . In one embodiment, the tag is extracted using one or more image processing techniques that recognize the tag and identify its features. 
         [0022]    In step  210 , the user endpoint device  108  retrieves data about the object from the user endpoint device&#39;s local storage (e.g., cache and/or tag database). This data may be retrieved by querying the local storage for content whose tags match the tag extracted from the image in step  208 . The query also includes the current position and orientation of the user endpoint device  108 . In one embodiment, the data retrieved in step  210  includes content identified based on statistical analysis of possible tags associated with the current location, based on similarity of elements present in the current location. For instance, continuing the above example, the probability of the image depicting a specific species of tree can be inferred based on a model of the statistical distribution of similar species present in the current location (e.g., models of biomass distribution). 
         [0023]    In optional step  212  (illustrated in phantom), the user endpoint device  108  retrieves data about the object from remote storage, such as the DB  106 . This data may be retrieved by querying the remote storage for content whose tags match the tag extracted from the image in step  208 . The query also includes the current position and orientation of the user endpoint device  108 . In one embodiment, the data retrieved in step  212  includes content identified based on statistical analysis of possible tags associated with the current location, based on similarity of elements present in the current location. In one embodiment, at least some of the data retrieved from the remote storage is subsequently stored in the local storage (along with its tag(s) and related location/position data). In one embodiment, step  212  is only performed when the data retrieved in step  210  is determined to be insufficient and/or incomplete. 
         [0024]    In step  214 , the user endpoint device  108  generates augmented content in accordance with the image captured in step  204  and the data retrieved in steps  210  and/or  212 . For instance, based on the example described above, the augmented content may comprise an image of the tree with information about the tree (e.g., name, genus, species, group, etc.) visually superimposed over the image. 
         [0025]    In step  216 , the user endpoint device  108  outputs the augmented content. For instance, the user endpoint device  108  may display an augmented image of the object on a display of the user endpoint device  108 . In one embodiment, the augmented content is stored either locally on the device or remotely (e.g., on the DB  106 ). 
         [0026]    The method  200  ends in step  218 . 
         [0027]    As discussed above, various data that facilitates context-aware tagging, including the location and position of the user endpoint device  108  and content retrieved from remote storage, is saved in the local storage of the user endpoint device  108 . In one embodiment this data is saved only temporarily. For instance, the data may be deleted from the local storage if it reaches a certain age or is not accessed for a threshold period of time. In a further embodiment, data that relates to objects that are outside a threshold radius from the user endpoint device&#39;s current location (“proximity region”) is also deleted. 
         [0028]    Thus, the method  200  provides a hybrid approach augmented reality that combines positioning information with context-based local tags. Local and remote content is interwoven expedite recognition of context and to reduce the need for communication with remote devices. Specifically, the method  200  first attempts to recognize context and satisfy data requests using locally stored content before querying remote data sources. Any data that is retrieved from remote sources is stored locally at least temporarily, based on the immediate needs to the user endpoint device  108 . The user endpoint device  108  can therefore accurately recognize context and satisfy data requests while minimizing the size of the tag database that (e.g., local and remote storage) that must be maintained to do so. 
         [0029]    Moreover, by cross-relating geolocation and tag-captured information, the amount of processing and communications required to recognize context and satisfy data requests can be significantly reduced. This allows the amount of information required to be stored with the tags to be likewise reduced, accepting non-uniqueness in tag identifiers. 
         [0030]    The above-described advantages make the present invention especially well-suited to mobile devices and other small form factor devices that are characterized by limited memory and/or communication capabilities, although the present invention is not so limited. 
         [0031]      FIG. 3  is a high-level block diagram of the context recognition method that is implemented using a general purpose computing device  300 . The general purpose computing device  300  may comprise, for example, any of the user endpoint devices  108 ,  110 ,  112  and  114  illustrated in  FIG. 1 . In one embodiment, a general purpose computing device  300  comprises a processor  302 , a memory  304 , a context recognition module  305  and various input/output (I/O) devices  306  such as a display, a keyboard, a mouse, a sensor, a stylus, a microphone or transducer, a wireless network access card, an Ethernet interface, and the like. In one embodiment, at least one I/O device is a storage device (e.g., a disk drive, an optical disk drive, a floppy disk drive). In one embodiment, the memory  304  includes cache memory, including a tag database that stores the relationship between tag identifier, location, and elements. In a further embodiment, the tag database also stores a distribution of similar tags for a given location or region. It should be understood that the context recognition module  305  can be implemented as a physical device or subsystem that is coupled to a processor through a communication channel. 
         [0032]    Alternatively, the context recognition module  305  can be represented by one or more software applications (or even a combination of software and hardware, e.g., using Application Specific Integrated Circuits (ASIC)), where the software is loaded from a storage medium (e.g., I/O devices  306 ) and operated by the processor  302  in the memory  304  of the general purpose computing device  300 . Thus, in one embodiment, the context recognition module  305  for context-aware tagging for augmented reality environments, as described herein with reference to the preceding figures, can be stored on a tangible computer readable storage medium or device (e.g., RAM, magnetic or optical drive or diskette, and the like). 
         [0033]    It should be noted that although not explicitly specified, one or more steps of the methods described herein may include a storing, displaying and/or outputting step as required for a particular application. In other words, any data, records, fields, and/or intermediate results discussed in the methods can be stored, displayed, and/or outputted to another device as required for a particular application. Furthermore, steps or blocks in the accompanying figures that recite a determining operation or involve a decision, do not necessarily require that both branches of the determining operation be practiced. In other words, one of the branches of the determining operation can be deemed as an optional step. 
         [0034]    While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof. Various embodiments presented herein, or portions thereof, may be combined to create further embodiments. Furthermore, terms such as top, side, bottom, front, back, and the like are relative or positional terms and are used with respect to the exemplary embodiments illustrated in the figures, and as such these terms may be interchangeable.