The invention generally relates to image processing techniques, photography, and augmented reality. In some aspects, embodiments of the invention relate to image processing and field of view determinations that permit or improve augmented reality methods and systems.
Cameras are everywhere. The proliferation of mobile electronic devices such as smartphones has had the effect that many ordinary individuals who in prior years only used cameras for special occasions like birthdays now carry around a camera in their pocket.
Multipurpose mobile electronic devices such as smartphones and tablets very frequently have one if not multiple built-in cameras that accompany other hardware like a display and speakers. The market for multipurpose devices like smartphones is considerable, and many different companies use propriety cameras or specialized camera configurations as a means for differentiating their own products from those of competitors. As a result, the consumer marketplace contains hundreds of different cameras with their own separate and unique specifications. Camera specifications differ not only between different companies/brands (e.g., Apple and Samsung), but also between different product series of the same company/brand (e.g., Samsung Galaxy and Samsung Note), and between different product versions within the same series (e.g., Samsung Galaxy S6 and Samsung Galaxy S7).
Because any one single company controls only a fraction of the mobile device market, and because any one specific mobile device model of that single company represents only a fraction of that fraction, it is not economically savvy for software developers to develop software products which cater only to a specific mobile device model, specific mobile device series, or even a specific company. Rather, the common industry trend is for software developers to create software products which are compatible with a wide variety of disparate hardware devices. However, a problem arises when the functionality or performance of a software product is highly dependent on hardware specifications like camera configurations which are enormously diverse across the market. Augmented reality products, for instance, can be heavily dependent on camera hardware. Augmented reality attempts to augment a real world experience, and to do this the devices or systems providing the augmentation must have an “understanding” of real world surroundings. Such “understanding” is most often obtained using one or more cameras which capture images or videos of the surroundings. Other sensors such as locations sensors (e.g., GPS devices) may also be used to collect data used as input to the logic decisions which ultimately produce an augmented reality experience. Because of the diversity of camera specifications, however, it becomes problematic for an augmented reality device to “understand” or characterize image or video data that is received from the camera.
One solution to the diversity of cameras and camera specifications in the market is to maintain a database with all specifications for all cameras on the market. This solution, however, is highly impractical. Specification data may not be easy or even possible to obtain for some proprietary camera hardware, and the annual releases of a variety of new devices with new hardware specifications by industry leaders and newcomers alike means keeping such a database up to date could prove impossible or overly burdensome. Therefore solutions are needed which permit the use of a wide variety of different cameras without reliance on detailed camera specifications being supplied from the manufacturers.
Exemplary embodiments provide methods and apparatuses which are configured to determine the field of view of a camera for which the field of view was not previously known. Field of view may be determined using a limited set of inputs, including a feed from the camera, referential data describing the locations of recognizable real world objects like the Empire State Building or a street sign, and location information for the camera (e.g., GPS data). Orientation information may also be used an input to describe the direction a camera is facing (e.g., north or south; towards the sky or towards the ground).
Using knowledge of the field of view of a real world camera, this field of view may be applied to a virtual world which creates a virtual landscape corresponding with a real world landscape. For instance, a virtual model of New York City could have many of the same general dimensions, proportions, and other qualities of the real New York City. The virtual model also contains virtual objects which may or may not correspond with the real world. For instance, a virtual model of New York City may have a virtual building that resembles the Empire State Building, and it may also have a virtual hot dog stand at the corner of Broadway and 7th Street which does not correspond with any real hot dog stand. For purposes of the invention, the virtual model may simply be virtual model data stored in a memory repository. Embodiments of the invention, using the field of view that was determined, select particular virtual objects to represent as augmentations to a user. So, for instance, just the virtual hot dog stand may be shown to a user if the user is looking at the real world corner of Broadway and 7th Street. In such manner augmented realities with accurately delivered (e.g., positioned) augmentations are made possible despite initially lacking the field of view of the camera being used to understand the real world surroundings of a user.
As used herein, “augmented reality”, or “AR”, is a direct or indirect experience of a physical, real-world environment in which one or more elements are augmented by computer-generated sensory output such as but not limited to sound, video, graphics, or haptic feedback. Augmented reality is frequently but not necessarily live/in substantially real time. It is related to a more general concept called “mediated reality”, in which a view of reality is modified (e.g., diminished or augmented) by a computer. The general intent is to enhance one's natural perception of reality (e.g., as perceived by their senses without external devices). In contrast to mediated reality, “virtual reality” replaces the real world with a simulated one. Augmentation is conventionally in real-time and in semantic context with environmental elements. For example, many Americans are accustomed to augmented reality when watching American football on a television. A football game as captured by video cameras is a real world view. However, the broadcasting company frequently augments the recorded image of the real world view with the line of scrimmage and first down markers on the field. The line and markers do not exist in reality, but rather they are virtual augmentations that are added to the real world view. As another example, in televised Olympic races, moving virtual lines can be superimposed on tracks and swimming pools to represent the position of a runner or swimmer keeping pace with the world record in the event. Augmented reality that is not in in real-time can be, for example, superimposing the line of scrimmage over the image of a football match that is being displayed after the match has already taken place. Augmented reality permits otherwise imperceptible information about the environment and its objects to supplement (e.g., be overlaid on) a view or image of the real world.
Augmented reality differs from a heads-up display, or HUD. A HUD displays virtual objects overlaid onto a view of the real world, but the virtual objects are not associated visually with elements of that real world view. Instead, the HUD objects are associated with the physical device that is used to display the HUD, such as a reflective window or a smartphone. A HUD moves with the display and not with the real world view. As a result, the virtual objects of the HUD are not perceived as being integrated into the real world view as much as purely being an overlay. When a display pans left, for example, a HUD moves left with the display. In contrast, augmentations (of an augmented reality) would move right with the real world view. Embodiments of the invention are primarily concerned with augmented reality as opposed to HUDs, although HUDs may be used in conjunction with augmented reality.
For a concrete example distinguishing augmented reality from HUDs, consider again televised American football. A line of scrimmage is shown as an augmentation (augmented reality). The line appears in relation to the field and the players within the real world view. If a camera pans left to look at a coach on a sideline, the center of the field, the players, and the virtual scrimmage line all move off to the right hand side of the view where they will eventually exit the field of view if the camera pans sufficiently to the left. In contrast to the line of scrimmage, scores of the competing teams are also usually displayed on televisions. The scores are typically superimposed on the view of the game in a top or bottom corner of the television screen. The scores always maintain a corner position in the television. When a camera pans left from the players in the center of the field to a coach on the sideline, the scores in essence move left along with the field of view, so that they maintain the exact same position on the display. The positions of the scores have no associative relationship to the positions of objects in the real world view. In this way, the scores behave like the virtual objects of a HUD as opposed to “augmentations” as generally used herein.
A camera includes at least one lens and an image sensor. The lens focuses light, aligns it, and produces a round area of light on an image sensor. Image sensors are typically rectangular in shape, with the result that the round area of light from the lens is cropped to a standard image format. A lens may be a zoom lens or a fixed focal length lens. At the time of writing this application, most mobile multipurpose electronic devices have fixed focal length lens. However, embodiments of the invention may be suited for either type of lens. Lenses may be categorized according to the range of their focal length. Three standard classifications are wide angle, normal, and telephoto. Categorization depends on focal length (or focal length range) and lens speeds.
Field of view (FOV) is the extent of the observable world seen at a given moment, e.g., by a person or by a camera. In photography, the term angle of view (AOV) is more common but can be used interchangeably with the term field of view (FOV).
Angle of view is one significant camera configuration. A camera is only able to capture an image or video (e.g., a series of images) containing an object if that object is within the angle of view of the camera. Because camera lenses are typically round, the angle of view of a lens can typically be expressed as a single angle measure which will be same regardless of whether the angle is measured horizontally, vertically, or diagonally. Angle of view of a camera, however, is also limited by the sensor which crops the image transmitted by the lens. The angle of view of a camera may be given horizontally, vertically, and/or diagonally. If only a single value is given with respect to a camera's FOV, it may refer to a horizontal angle of view.
Angle of view is related to focal length. Smaller focal lengths allow wider angles of view. Conversely, larger focal lengths result in narrower angles of view. For a 35 mm format system, an 8 mm focal length may correspond with an AOV of 180°, while a 400 mm focal length corresponds with an AOV of 5°, for example. As an example between these two extremes, a 35 mm focal length corresponds with an AOV of 68°. Unaided vision of a human tends to have an AOV of about 45°. “Normal” lenses are intended to replicate the qualities of natural vision and therefore also tend to have an AOV of about 45°.
Angle of view is also dependent on sensor size. Sensor size and angle of view are positively correlated. A larger sensor size means a larger angle of view. A smaller sensor size means a smaller angle of view. For a normal lens, FOV (or AOV) can be calculated as
where d is the sensor size and f is the focal length.
In the context of digital spaces (e.g., virtual reality worlds), field of view (FOV) is frequently discussed according to a viewing frustum.
The frustum 100 of
Augmented reality involves defining spatial relationships between virtual objects and real objects, and then making the virtual objects apparent to a user of the augmented reality system in such a way as to combine real and virtual objects. For example a visual augmented reality display could use virtual and real objects, and their defined spatial relationships, to generate a combined visual display in the form of a live streaming video (presenting real objects) overlaid with representations of the virtual objects. A spatial relationship between two objects (either or both of which may be virtual or real) may involve one or more of a topological relation, a distance relation, and a directional relation. A topological relation between an object A and an object B may be, for example, A is within B, A is touching B, A is crossing B, A is overlapping B, or A is adjacent to B. Precise spatial relationships between real and virtual objects allow an augmented reality system to generate perceptual experiences in which real and virtual objects are apparently combined seamlessly, e.g. for visual systems the combined presentation is apparently in the correct visual proportions, perspectives, and arrangement. Without correct reckoning of the spatial relationships in such a system, errors in the presentation of the system's output to the user can cause the system to be unusable, e.g. virtual objects appear out of place and therefore are not useful. An example is a virtual visual label that should label one building, but is erroneously shown overlaid onto a different building.
In order to create a visual augmented reality system, in addition to establishing spatial relationships between virtual objects and real objects, the visual perspective into the real world must be matched to the effective visual perspective into the virtual world. Even when the virtual world objects are sized and positioned correctly with respect to their real world counterparts, the determination of which virtual objects are eligible for visual presentation to the user depends on the perspective in the virtual world, which must be matched to the real world perspective of a real world camera in order to take advantage of carefully determined spatial relationships among virtual and real objects. The perspective of the camera includes the position of the camera, the orientation of the camera, and its field of view.
The need for a correctly matched perspective between virtual and real worlds means that in order to provide an accurate spatial relationship between virtual objects and real objects in an augmented reality output, it is necessary to determine the field of view of the real camera so that the virtual field of view can be matched to the real field of view.
Existing augmented reality (AR) products in the marketplace today make use of dedicated hardware for which the camera field of view is known a priori before the augmented reality software algorithm is written. However, these solutions cannot be used on any hardware other than the dedicated hardware for which the AR system is pre-calibrated. A traditional AR system which does not have a priori knowledge of a camera's field of view has a problem of determining which virtual objects are candidates for presenting augmentation (e.g., display). To illustrate this problem, consider the following scenario discussed in connection with
Referring now to
On the other hand,
Exemplary embodiments of the invention comprise the necessary means, structural and/or functional, for an AR device or system such as AR device 404 of
A camera includes at least one lens and an image sensor, generally represented in
Exemplary embodiments of the invention use a limited set of inputs to resolve the problem of determining the field of view of a camera. For system 700 of
In
The image/video data 711 captured by the camera 701 first undergoes image processing at block 721 for object recognition. A minimum of two real objects are detected by the object recognition algorithm(s). Any of a variety of image processing software may be used for object recognition of block 721. For instance, image processing is conducted is some exemplary embodiments using a convolutional neural network. A convolutional neural network comprises computer-implemented neurons that have learnable weights and biases. A convolutional neural network employs a plurality of layers and combines information from across an image to detect an object in the image. The image processing at block 721 may include, for example, targeting, windowing, and/or classification with a decision tree of classifiers.
From the object recognition at block 721, at least two real objects, R1 and R2, are detected and preferably identified (or are at least identifiable). If three or more real objects are detected, it is preferable to select two real objects from among these which lie on distinctly different viewing axes. In other words, the two selected objects and the camera do not form three points on a single line, but rather they are spread apart with respect to one another such that they form a clear triangle if viewed from above. The system is configured such that the depth of the respective objects, that is to say the camera-to-object distances, need not be of particular importance or explicitly taken into consideration. Detectable and identifiable real world objects may take essentially any form of object that is essentially stationary, including but not limited to monuments, recognizable or iconic buildings, street signs, stores or restaurants (e.g., McDonalds or Wendy's), location signs specific to their buildings or locations (e.g., store signs posted on building exteriors or mile markers along a highway), among other things.
Next, the angle subtended by R1-camera-R2 is calculated a second time by a different approach, the resulting angle value being referred to as A3. This process occurs at blocks 724 and 725 in
At this point the processor 703 has two values for the same physical angle. Namely, it has value A2 value A3, both of which describe the angle subtended by R1-camera-R2. At block 726, the values A2 and A3 are compared. If FOVinitial was perfectly accurate, A2 and A3 will be equal. Generally, however, A2 and A3 will disagree by some amount of error. FOVinitial is therefore corrected at block 727 using the magnitude of the error between A2 and A3. The correction is the negative of the error. For example, if A2 is 10% larger than A3, then FOVinitial is reduced by 10%. Correcting FOVinitial based on the error between A2 and A3 gives a final measure of the FOV of the camera, FOVfinal, at block 728. If desired, the final determined value for the FOV of the camera, FOVfinal, can be output as data at block 729 (e.g., output to memory storage). In addition or as an alternative, output at block 729 may comprise or consist of initiating a signal that controls an output (e.g., auditory, visual, and/or tactile output) of an output device based on FOVfinal.
While this example has focused on a two-dimensional application, the same principles apply to 3D contexts. The 3D case simply involves performing the correction twice, once in the vertical dimension and once in the horizontal dimension. The corrected and final FOV of the camera, FOVfinal, is now ready to be used as the effective virtual field of view in a virtual world.
The field of view value, FOVfinal, given at block 728 is but one characteristic that describes the perspective of camera 701. A second characteristic is the camera's position (block 712). A third characteristic is the camera's orientation (block 715). In short, the perspective of the camera includes the field of the view of the camera, the position of the camera, and the orientation of the camera. Position and orientation may be referred to collectively as the pose of the camera. The orientation of the camera 715 may be obtained from sensors such as a gyroscope and digital compass 714. Typical mobile devices on the market in 2017 are equipped by their manufacturers with GPS, gyroscopic sensors, and a digital compass. These sensors are typically readily available to software applications including third party applications running on the mobile devices. However, of the key characteristics of camera perspective of a mobile device, the FOV is a characteristic which is not exposed to software applications. This deficiency gives rise to the problem addressed by exemplary embodiments herein which determine FOV in order to complete the assessment of augmented reality perspective.
Based on the location 712, the field of view 728, the orientation 715, and assumptions about the near and far field limits (e.g., predetermined values for near and far field limits), a 3D real world frustum is determined at block 741. This real world frustum is applied to a virtual world at block 742 using virtual world data from database 702b. Virtual objects which are inside the frustum are found as candidates for augmentation. The selection of augmentations based on the virtual object candidates occurs at block 743 and may involve one or more criteria including, for example, user option selections and the relationships between different virtual objects. For instance, the processor 703 may determine which of the virtual objects obscure parts of each other based on the frustum in the virtual world. At block 744, a signal is initiated to control the augmented reality output of an output device 704. The initiated signal contains information for the augmentations selected at block 743. In embodiments where the processor 703 is arranged remotely from the output device 704 (e.g., if the processor is part of a cloud server), the initiated signal is transmitted over a network (e.g., the Internet) to reach the output device 704. In embodiments where the processor 703 is part of or at least co-located with the output device 704, the initiated signal may simply be conveyed over hardwired connections. After the device 704 has the signal, the selected augmentations are provided as one or more of auditory, visual, or tactile output at the VR device 704. Significantly, the augmentations have appropriate and accurate spatial relationships with the real world objects owing to the fact that the augmented reality is based on the FOVfinal that was determined via blocks 721 to 728.
It should be appreciated that augmentations that are or include auditory and tactile elements still involve virtual objects that need to be identified with accurate spatial relationships with respect to real world objects. For example, a VR device that is a HMD may be used to give a guided tour of a real place like New York City. When a user looks at the Empire State Building with the HMD, the device may announce through a speaker “You are looking at the Empire State Building.” This announcement is an auditory augmentation corresponding with a virtual object that has a location in the virtual world which matches the location of the actual Empire State Building in the real world. Without a determination of the field of the view of the VR device (more specifically the FOV of its camera or cameras), the device conceivably could announce to a user that the Empire State Building is visible when in fact it is just outside of the actual field of view. In short, the same problem that was described in connection with
Finding virtual object candidates and selecting corresponding augmentations for output (blocks 742 and 743 of
The processor 703 is able to measure an apparent distance d′ between the real object, R1, and line L1 which is a centerline of the live video and of the virtual frustum. The distance d′ may be measured in pixels. The processor 703 also measures the distance w′ that is half the width of the entire image and which may also be measured in pixels. In other words, w′ is the distance within the image from the edge E of the frame and L1.
Next, the angle subtended by R1-camera-L1 is calculated a second time by a different approach, the resulting angle value being referred to as A5. The detected real object, R1, is checked against a database 702a. Location information for the real world object R1 is retrieved from the database 702a by the processor 703. The actual real world angle A5 that is subtended by R1-camera-L1 is now calculated. Angle A5 is illustrated in
At this point the processor 703 has two values for the same physical angle. Namely, it has value A4 and value A5, both of which describe the angle subtended by R1-camera-L1. The values A4 and A5 are then compared. If FOVinitial was perfectly accurate, A4 and A5 will be equal. Generally, however, A4 and A5 will disagree by some amount of error. FOVinitial is therefore corrected using the magnitude of the error between A4 and A5. The correction is the negative of the error. For example, if A4 is 10% larger than A5, then FOVinitial is reduced by 10%. Correcting FOVinitial based on the error between A4 and A5 gives a final measure of the FOV of the camera, FOVfinal.
Returning to database 702, virtual objects are stored, updated, and manipulated as data within one or more databases 702b. The virtual objects have their own existence separate from how they are displayed, visualized, haptically buzzed, or otherwise output by an output device. So, generally speaking, a virtual object has its own characteristics, and then, based on those characteristics and on the real and the virtual environment, an exemplary augmented reality system determines what is presented to the user. An augmentation may be displayed (or otherwise provided) if, and only if, the system determines that a given virtual object should be apparent to the user given the viewing device's pose and field of view in the real world and therefore its pose and field of view in the virtual world.
The characteristics of those virtual objects (stored in the database along with the geometric aspects of the virtual representation) determine what baseline augmentation to provide and markers/indicators/tweaks may be performed on the baseline augmentation. In general, the augmentation that is output (e.g., displayed) depends on all of the virtual characteristics of the virtual objects that are made perceptible given the current perspective of the current image. As a comparative analogy to illustrate this point, a car may give haptic feedback (vibration) to the steering wheel when the operator drives over the centerline of the road without using a turn signal. There is no visual augmentation at all, and yet it is a visual part of the real world sensory input that drives the determination that the haptic feedback will be presented. If the operator indicates his intent to change lanes by tapping the turn signal arm, a characteristic flag of the system is set, and the haptic augmentation is not presented to the user, who in that case perceives nothing from the augmentation system.
According to a feature of some embodiments, virtual objects may obscure other virtual objects in the current real world perspective. The obscuring object may cause the obscured object to not be represented via augmentations, even if the obscuring object is itself not shown with any augmentations. For example, a user may see a real world image in which no augmentations are shown at all, despite the fact that two virtual objects are contained geometrically within the field of view. A first virtual object (which for illustrative purposes will be called virtual object A) would be shown with an augmentation if not otherwise obscured. A second virtual object (which will be called virtual object B) entirely obscures A given the field of view, but virtual object B may itself not be currently shown as an augmentation. In this way the virtual objects that represent a virtual world suitable for augmenting a real world view consist of two basic classes of objects. The first class is associated with augmentations. The second class is not associated with augmentations but still interact with the other virtual objects either by obscuring them visually or through other possible interactions (e.g., an augmentation of an object of the first class might be a different color if the first class virtual object is near a virtual object of the second class).
According to a further feature of some embodiments, systems include user interactive features which can contribute to the determination of field of view. For instance, an output instruction may be provided to a user to pan the camera to the side in order to bring additional real world objects into view. The system can then in effect use a stitched panoramic view as the input to object recognition (e.g., at block 721 of
Regarding blocks 721 and 724 (object recognition and object locations, respectively) as well as database 702a in
The databases 702 (e.g., 702a and 702b in
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network (LAN), a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or schematic diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and different combinations of blocks in the flowchart illustrations and/or block diagrams, may be implemented by or with the use of computer readable program instructions and by or with one or a plurality of processors and supporting hardware, software, and firmware.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. This may have the effect of making a general purpose computer a special purpose computer or machine. A “processor” as frequently used in this disclosure may refer in various embodiments to one or more general purpose computers, special purpose computers, or some combination thereof.
Computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
An “output device”, as used herein, is a device capable of providing at least visual, audio, audiovisual, or tactile output to a user such that the user can perceive the output using his senses (e.g., using her eyes and/or ears). In many embodiments, an output device comprises at least one display, at least one speaker, or some combination of display(s) and speaker(s). The output device may also include one or more haptic devices. A suitable display (i.e., display device) is a screen of an output device such as a mobile electronic device (e.g., phone, smartphone, GPS device, laptop, tablet, smartwatch, etc.). Another suitable output device is a head-mounted display (HMD). In some embodiments, the display device is a see-through HMD. In such cases the display device passively permits viewing of the real world without reproducing details of a captured real world image feed on a screen. In a see-through HMD, it is generally only the augmentations that are actively shown or output by the device. Visual augmentations are in any case superimposed on the direct view of the real world environment, without necessarily involving the display of any of the original video input to the system. Output devices and viewing devices may include or be accompanied by input devices (e.g., buttons, touchscreens, menus, keyboards, data ports, etc.) for receiving user inputs. Some devices may be configured for both input and output (I/O).
“Position,” as used herein, may be expressed as a location. Location information may be absolute (e.g., latitude, longitude, elevation, and a geodetic datum together may provide an absolute geo-coded position requiring no additional information in order to identify the location), relative (e.g., “2 blocks north of latitude 30.39, longitude −97.71 provides position information relative to a separately known absolute location), or associative (e.g., “right next to the copy machine” provides location information if one already knows where the copy machine is; the location of the designated reference, in this case the copy machine, may itself be absolute, relative, or associative). Absolute location involving latitude and longitude may be assumed to include a standardized geodetic datum such as WGS84, the World Geodetic System 1984. In the United States and elsewhere the geodetic datum is frequently ignored when discussing latitude and longitude because the Global Positioning System (GPS) uses WGS84, and expressions of latitude and longitude may be inherently assumed to involve this particular geodetic datum. For the present disclosure, absolute location information may use any suitable geodetic datum, WGS84 or alternatives thereto.
As used herein, “user” typically refers to a human interacting with or using an embodiment of the invention.
While the invention has been described herein in connection with exemplary embodiments and features, one skilled in the art will recognize that the invention is not limited by the disclosure and that various changes and modifications may be made without departing from the scope of the invention as defined by the appended claims.
This application claims the benefit of U.S. Provisional Patent Application No. 62/512,240, filed May 30, 2017, the complete contents of which are herein incorporated by reference.
Number | Date | Country | |
---|---|---|---|
62512240 | May 2017 | US |