Augmented reality (AR) applications present users with an augmented or enhanced view of a real-world environment, in which relevant content can be overlaid onto physical objects or points of interest located within the environment. For example, a mobile AR application executable at a user's mobile device may overlay static or dynamic AR content related to various physical objects in the real-world environment. Each physical object may be identified by the mobile AR application as a predefined “target” that can be represented digitally within a virtual AR environment displayed for the user via a display of the mobile device. The virtual AR environment and objects represented may be based on, for example, images of the real-world environment captured by a digital camera integrated with the mobile device. Examples of different types of AR content that may be overlaid for an object in the real-world (e.g., identified as a target in the virtual AR world) may include, but are not limited to, text, images, graphics, or location information, e.g., geographic location coordinates from a global positioning system (GPS).
However, conventional techniques for identifying targets within AR environments provided by mobile AR applications generally require a compromise between speed (e.g., with respect to AR target identification and content delivery) and efficiency (e.g., with respect to memory usage for storing target data). For example, speed may be increased by storing static target data for every identifiable target within a local memory of the mobile device. However, this would place a significant burden on memory and other system resources, particularly if the number of identifiable targets is extremely large (e.g., over a million or billion targets).
Alternatively, efficiency may be improved by offloading target identification operations to a server and/or storing the target data in a remote storage location (e.g., a cloud-based data store), which may be dynamically accessed by the mobile AR application via a communication network. However, the speed of target identification at the mobile device may be significantly reduced due to, for example, data propagation delays or bandwidth issues in the network.
Thus, such conventional solutions for target identification based on either static local data or dynamic data located remotely pose significant challenges to providing support for AR environments representing relatively more complex real-world environments with large numbers of identifiable targets (e.g., millions of targets related to individual consumer product items within a commercial business), it becomes even more critical for the mobile AR application to quickly identify a large number targets, while also maintaining an acceptable or desired level of responsiveness and overall system performance.