Patent Description:
Augmented reality (AR) involves enhancing the perception of a real-world environment with supplementary visual and/or audio content, where artificial information is overlaid onto a view of a physical environment. The supplementary content may be projected onto a personalized display device, which may be specifically adapted for AR use, such as a head-mounted display (HMD) or AR-supporting eyeglasses or contact lenses, or alternatively the display screen of a mobile computing device (e.g., a smartphone or tablet computer). The supplementary content is typically presented in real-time and in the context of elements in the current environment.

AR is increasingly utilized in a wide variety of fields, ranging from: medicine (e.g., enhancing X-ray, ultrasound or endoscopic images of the interior of a human body to assist therapeutic and diagnostic procedures); commerce (e.g., allowing a customer to view the inside of a packaged product without opening it); and education (e.g., superimposing relevant educational material to enhance student comprehension); to: military (e.g., providing combat troops with relevant target information and indications of potential dangers); entertainment (e.g., augmenting a broadcast of a sporting event or theatre performance); and tourism (e.g., providing relevant information associated with a particular location or recreating simulations of historical events). The number and variety of potential applications for AR continues to expand considerably.

In order to associate the supplementary content with the real world environment, an image of the environment captured by a camera or image sensor may be utilized, as well as telemetric data obtained from detectors or measurement systems, such as location or orientation determining systems, associated with the camera. A given camera includes various optics having particular imaging characteristics, such as the optical resolution, field of view, and focal length. These characteristics ultimately influence the parameters of the images acquired by that camera, as does the position and viewing angle of the camera with respect to the imaged scene. The measurement systems are inherently capable of supplying a certain level of accuracy or precision, but ultimately have limitations arising from the inherent precision of the various components. Such limitations may also vary depending on the particular environmental conditions (e.g., measurement accuracy may be lower during nighttime, rain or snow, or inclement weather), and may exacerbate over time due to gradual degradation of the optics and other system components. As a result, the position and orientation of the camera as acquired via the associated measurement systems may not correspond exactly to the real or true position and orientation of the camera. Such inaccuracies could be detrimental when attempting to georegister image data for displaying AR content, as it can lead to the AR content being superimposed out of context or at an incorrect relative position with respect to the relevant environmental features or elements.

<CIT>, entitled "An Augmented Reality Method and a Corresponding System and Software", is directed to an augmented reality method and system for mobile terminals that involves overlaying location specific virtual information into the real images of the camera of the mobile terminal. The virtual information and also visual information about the environment at the location of the terminal is selected and downloaded from a remote database server, using as well the location (via GPS) and the orientation (via magnetometer, compass and accelerometer) of the mobile terminal. This information is continuously updated by measuring the movement of the mobile terminal and by predicting the real image content. The outline of the captured scene (i.e., crest lines of mountains in the real camera images) is compared with the outline of a terrain model of the scene at the location of the mobile terminal.

<CIT>, entitled "System for Rendering Virtual See-Through Scenes", is directed to a system and method for displaying an image on a display. A three-dimensional representation of an image is obtained, and is rendered as a two-dimensional representation on the display. The location and viewing orientation of a viewer with respect to the display (e.g., the viewer's head and/or eye position, gaze location) is determined, using an imaging device associated with the display. The displayed rendering is modified based upon the determined location and viewing orientation.

<CIT>, entitled "Projecting Location Based Elements over a Heads Up Display", is directed to a system and method for projecting location based elements over a heads up display (HUD). A 3D model of the scene within a specified radius of a vehicle is generated based on a digital mapping source of the scene. A position of at least one location aware entity (LAE) contained within the scene is associated with a respective position in the 3D model. The LAE from the 3D model is superimposed onto a transparent screen facing a viewer and associated with the vehicle, the superimposition being in a specified position and in the form of a graphic indicator (e.g., a symbolic representation of the LAE). The specified position is calculated based on: the respective position of the LAE in the 3D model; the screen's geometrical and optical properties; the viewer's viewing angle; the viewer's distance from the screen; and the vehicle's position and angle within the scene, such that the viewer, the graphic indicator, and the LAE are substantially on a common line.

<CIT>, entitled "Portals: Registered Objects as Virtualized Personalized Displays", is directed to a see-through head-mounted display (HMD) for providing an augmented reality image associated with a real-world object, such as a picture frame, wall or billboard. The object is initially identified by a user, for example based on the user gazing at the object for a period of time, making a gesture such as pointing at the object and/or providing a verbal command. The location and visual characteristics of the object are determined by a front-facing camera of the HMD device, and stored in a record. The user selects from among candidate data streams, such as a web page, game feed, video, or stocker ticker. Subsequently, when the user is in the location of the object and look at the object, the HMD device matches the visual characteristics of the record to identify the data stream, and displays corresponding augmented reality images registered to the object.

<CIT>, entitled "Mobile Device, Server Arrangement and Method for Augmented Reality Applications", discloses a mobile device that includes a communications interface, a digital camera, a display and an augmented reality (AR) entity. The AR entity transmits, via the communications interface, an indication of the mobile device location to an external entity. The AR entity obtains, by data transfer from the external entity via the communications interface, a representation determined on the basis of a number of 3D models of one or more virtual elements deemed as visually observable from the mobile device location, where the representation forms at least an approximation of the 3D models, and where the associated spherical surface is configured to surround the device location. The AR entity produces an AR view for visualization on the display based on the camera view and orientation-wise matching portion, such as 2D images and/or parts thereof, of the representation.

<NPL>, discloses techniques for georegistering motion imagery captured by aerial photography, based on the registration of actual images to predicted images from a high-resolution digital elevation model (DEM). The predicted image is formed by generating a shaded rendering of the DEM using the Phong reflection model along with shadows cast by the sun, and then projecting the rendering into the image plane of the actual image using the camera model (collinearity equations with radial lens distortion). The initial camera model of the first image is estimated from GPS data and an initial sensor aimpoint. The predicted image is registered to the actual image by detecting pairs of matching features using normalized cross correlation. The resulting camera model forms the initial camera estimate for the next image. An enhanced version of the algorithm uses two predicted images, where a second predicted image consists of the actual image projected into the orthographic frame of the first predicted image.

<CIT>, entitled "Image Registration of Multi-Mode Data using 3d Geoarc", is directed to achieve the registration (fusion) of a multi-mode image of a scene into a three-dimensional (3D) display of the same scene by using visual point data to be obtained from a sensor which has generated a target image and a 3D-GeoArc. A first primary step includes the formation of a reference model for forming the 3D reference model of a scene. The next step includes the acquisition of a target image for acquiring the target image of the scene, and the target image may be acquired by the sensor. The next second primary step includes the determination/estimation of a visual point from which the target image has been acquired for estimating the 3D geographical spatial visual point of the sensor which has generated the target image by using a 3D-GeoArc. The next third primary step includes the projection of the data of the target image to 3D synthetic scene display for projecting the data of the target image to the synthetic 3D scene display.

<CIT>, entitled "Discovering visited travel destinations from a set of digital images a Heads Up Display", relates to identifying visited travel destinations from a set of digital images associated with users of a social networking system. For example, one or more computing devices provide access to an individual user's account, including the individual user and other users affiliated with the individual user via the social networking system. One or more digital images are received from a computing device associated with the individual user and from one or more second computing devices associated with the other users of the social networking system. From each digital image, a geo-location is determined for each digital image. The one or more computing devices display each geo-located image on a map at a position corresponding to the determined geo-location for the geo-located image.

The solution is provided by the features of the independent claims. Variations are as described in the dependent claims.

In accordance with an aspect of the present invention, there is thus provided a system for determining a position and orientation of a camera using another camera imaging a common scene and having a known position and orientation. The system includes a first camera and a first processor disposed on a first platform, and a second camera and a second processor disposed on a second platform. The position and orientation of the first camera is obtained by georegistering the camera images to a 3D geographic model. The first processor is configured to obtain a first image of the scene captured by the first camera and to extract scene features in the first image and provide a respective feature descriptor for each extracted scene feature, and further configured to determine the 3D position and orientation of each extracted scene feature by mapping to a 3D geographic model. The second processor is configured to receive the feature descriptors and the 3D position and orientation of each extracted scene feature in the first image, to extract scene features in a second image of the scene captured by the second camera and provide a respective feature descriptor for each extracted scene feature, to match the scene features in the second image with the scene features in the first image, and to determine position and orientation coordinates of the second camera using the 3D coordinates in the scene and their corresponding 2D projections in the second image. The second camera may include at least one imaging characteristic which is limited relative to the first camera. The first platform may be a mobile platform configured to follow a predefined trajectory, and the first camera may be configured to capture a sequence of images at multiple coordinates along the trajectory, each image representing a different viewing angle of the scene, where the feature descriptors and the 3D position and orientation of the scene features extracted in at least one image captured along the trajectory by the first camera, is transmitted from the first platform to the second platform. At least one of the first camera and the second camera may be redirected or repositioned in accordance with telemetry data, to ensure that the first image and the second image contain common scene features.

The present invention overcomes the disadvantages of the prior art by providing methods and systems for determining a corrected 3D pose (position and orientation) of a non-georegistered camera using a different camera which is georegistered to a 3D geographic model to compensate for inherent inaccuracies in the measured camera pose. The georegistration process involves comparing a sensor image of a scene with a virtual image as would be acquired within the 3D model using the same parameters as used by the camera. Based on the deviations between the sensor image and the virtual image from the 3D model, the measured position and orientation coordinates of the camera can be corrected. According to one embodiment, a georegistered first camera is used to determine a corrected pose of a non-georegistered second camera imaging a common scene as the first camera. Scene features are extracted in a first camera image and the respective 3D feature coordinates are determined using 3D model mapping. The extracted features are matched with corresponding scene features in a second camera image, from which the 3D pose of the second camera can be determined using the 3D feature coordinated and their corresponding projections in the second camera image. According to another embodiment, the corrected pose of at least one camera in a camera assembly with multiple cameras directed to respective imaging directions is determined using another camera of the camera assembly and the known relative positions and orientations between the cameras. The 3D pose of a first camera in the assembly is determined by georegistering a first camera image to a 3D geographic model, and the 3D pose of a second camera in the assembly is determined based on the global pose of the first camera and the relative pose between the first camera and the second camera. The determined corrected 3D pose of the camera can be used to establish the correct location of an environmental element on an image captured by the camera for displaying augmented reality content superimposed on the camera image in relation to the environmental element.

Reference is now made to <FIG>, which is a schematic illustration of a system for image georegistration, generally referenced <NUM>, constructed and operative in accordance with an embodiment of the present invention. System <NUM> includes a user device <NUM> that includes an imaging sensor <NUM>, a display <NUM>, a global positioning system (GPS) <NUM>, and a compass <NUM>. System <NUM> further includes a processor <NUM>, a memory <NUM>, and a three-dimensional (3D) geographic model <NUM>. Processor is communicatively coupled with user device <NUM>, with memory <NUM>, and with 3D model <NUM>.

User device <NUM> may be situated at a separate location from processor <NUM>. For example, processor <NUM> may be part of a server, such as a remote computer or remote computer system or machine, which is accessible over a communications medium or network. Alternatively, processor <NUM> may be integrated within user device <NUM>. If user device <NUM> and processor <NUM> are remotely located (as shown in <FIG>), then a data communication channel <NUM> (e.g., a wireless link) enables data communication between processor <NUM> and the components of user device <NUM>. Similarly, processor <NUM> may be situated at a separate location from 3D model <NUM>, in which case a data communication channel <NUM> (e.g., a wireless link) enables data transmission between 3D model <NUM> and processor <NUM>.

User device <NUM> may be any type of computational device or machine containing at least an imaging sensor <NUM> and position and orientation determining components (such as GPS <NUM> and compass <NUM>). For example, user device <NUM> may be embodied by: a smartphone, a mobile phone, a camera, a laptop computer, a netbook computer, a tablet computer, a handheld computer, a personal digital assistant (PDA), a portable media player, a gaming console, or any combination of the above. It is noted that display <NUM> may be integrated within user device <NUM> (as shown in <FIG>) or otherwise associated therewith, or alternatively display <NUM> may be part of a separate device that is accessible to and viewable by a user. For example, display <NUM> may be embodied by: the display screen of a computational device (e.g., a smartphone display screen, a tablet computer display screen, a camera display screen and the like); a wearable display device (e.g., goggles, eyeglasses, contact lenses, a head-mounted display (HMD), and the like); a monitor; a head-up display (HUD); a camera viewfinder; and the like. Display <NUM> may be at least partially transparent, such that the user viewing display <NUM> can simultaneously observe images superimposed onto the display together with a view of a physical scene through the display.

Imaging sensor <NUM> may be any type of device capable of acquiring and storing an image representation of a real-world scene, including the acquisition of any form of electromagnetic radiation at any range of wavelengths (e.g., light in the visible or non-visible spectrum, ultraviolet, infrared, radar, microwave, RF, and the like). Imaging sensor <NUM> is operative to acquire at least one image frame, such as a sequence of consecutive image frames representing a video image, which may be converted into an electronic signal for subsequent processing and/or transmission. Accordingly, the term "image" as used herein refers to any form of output from an aforementioned image sensor, including any optical or digital representation of a scene acquired at any spectral region. The terms "image sensor" and "camera" are used interchangeably herein.

GPS <NUM> and compass <NUM> represent exemplary instruments configured to measure, respectively, the position and orientation of user device <NUM>. User device <NUM> may alternatively include other position and/or orientation measurement instruments, which may be embodied by one or more devices or units, including but not limited to: an inertial navigation system (INS); an inertial measurement unit (IMU); motion sensors or rotational sensors (e.g., accelerometers, gyroscopes, magnetometers); a rangefinder; and the like.

Data communication channels <NUM>, <NUM> may be embodied by any suitable physical or logical transmission medium operative for conveying an information signal between two points, via any type of channel model (digital or analog) and using any transmission protocol or network (e.g., radio, HF, wireless, Bluetooth, cellular, and the like). User device <NUM> may further include a transceiver (not shown) operative for transmitting and/or receiving data through communication channel <NUM>.

3D geographic model <NUM> may be any type of three-dimensional representation of the Earth or of a particular area, region or territory of interest. Such a 3D model may include what is known in the art as a: "virtual globe", "digital elevation model (DEM)", "digital terrain model (DTM)", "digital surface model (DSM)", and the like. 3D model <NUM> generally includes imagery and texture data relating to geographical features and terrain, including artificial features (e.g., buildings, monuments, and the like), such as the location coordinates of such features and different views thereof (e.g., acquired via satellite imagery or aerial photography, and/or street level views). For example, 3D model <NUM> can provide a plurality of visual representations of the geographical terrain of a region of interest at different positions and viewing angles (e.g., by allowing manipulation operations such as zooming, rotating, tilting, etc). 3D model <NUM> may include a proprietary and/or publically accessible model (e.g., via open-source platforms), or may include a model that is at least partially private or restricted. Some examples of publically available 3D models include: Google Earth™; Google Street View™; NASA World Wind™; Bing Maps™; Apple Maps; and the like.

The components and devices of system <NUM> may be based in hardware, software, or combinations thereof. It is appreciated that the functionality associated with each of the devices or components of system <NUM> may be distributed among multiple devices or components, which may reside at a single location or at multiple locations. For example, the functionality associated with processor <NUM> may be distributed between multiple processing units (such as a dedicated image processor for the image processing functions). System <NUM> may optionally include and/or be associated with additional components (not shown) for performing the functions of the disclosed subject matter, such as: a user interface, external memory, storage media, microprocessors, databases, and the like.

Reference is now made to <FIG>, which is a schematic illustration of an exemplary scene and the resultant images obtained with the system of <FIG>, operative in accordance with an embodiment of the present invention. A real-world scene <NUM> of an area of interest is imaged by imaging sensor <NUM> of user device <NUM>, resulting in image <NUM>. Scene <NUM> includes a plurality of buildings, referenced <NUM>, <NUM> and <NUM>, respectively, which appear on sensor image <NUM>. While acquiring image <NUM>, imaging sensor <NUM> is situated at a particular position and at a particular orientation or viewing angle relative to a reference coordinate frame, indicated by respective position coordinates (X<NUM>, Y<NUM>, Z<NUM>) and viewing angle coordinates (α<NUM>, β<NUM>, λ<NUM>) of imaging sensor <NUM> in three-dimensional space (six degrees of freedom). The position coordinates and viewing angle coordinates of imaging sensor <NUM> are determined by GPS <NUM> and compass <NUM> of user device <NUM>. Imaging sensor <NUM> is further characterized by additional parameters that may influence the characteristics of the acquired image <NUM>, such as for example: field of view; focal length; optical resolution; dynamic range; sensitivity; signal-to-noise ratio (SNR); lens aberrations; and the like. In general, the term "imaging parameters" as used herein encompasses any parameter or characteristic associated with an imaging sensor that may influence the characteristics of a particular image obtained by that imaging sensor. Accordingly, sensor-image <NUM> depicts buildings <NUM>, <NUM>, <NUM> from a certain perspective, which is at least a function of the position and the orientation (and other relevant imaging parameters) of imaging sensor <NUM> during the acquisition of image <NUM>. Sensor-image <NUM> may be converted to a digital signal representation of the captured scene <NUM>, such as in terms of pixel values, which is then forwarded to processor <NUM>. The image representation may also be provided to display <NUM> for displaying the sensor-image <NUM>.

Scene <NUM> includes at least one target element <NUM>, which is represented for exemplary purposes by a window of building <NUM>. Target element <NUM> is geolocated at position coordinates (X, Y, Z). As discussed previously, imaging sensor <NUM> is geolocated at position and orientation coordinates (X<NUM>, Y<NUM>, Z<NUM>; α<NUM>, β<NUM>, λ<NUM>), relative to the same reference coordinate frame. However, due to inherent limitations in the accuracy of the location measurement components of user device <NUM> (e.g., as a result of environmental factors, degradation over time, and/or intrinsic limits in the degree of precision attainable by mechanical components), the geolocation coordinates of imaging sensor <NUM> as detected by GPS <NUM> and compass <NUM> may have certain deviations with respect to the true or actual geolocation coordinates of imaging sensor <NUM>. Thus, the detected geolocation of imaging sensor <NUM> is at deviated position and orientation coordinates (X<NUM>+ΔX, Y<NUM>+ΔY, Z<NUM>+ΔZ; α<NUM>+Δα, β<NUM>+Δβ, λ<NUM>+Δλ). As a result, if augmented reality content associated with target element <NUM> were to be superimposed onto sensor-image <NUM> based on the geolocation of target element <NUM> relative to the detected geolocation of imaging sensor <NUM>, the AR content may appear on image <NUM> at a different location than that of target element <NUM>, and may thus be confused or mistaken by a viewer as being associated with a different element (e.g., another object or region of scene <NUM>).

Reference is now made to <FIG>, which is a schematic illustration of exemplary supplementary content being inaccurately superimposed onto a sensor-image, operative in accordance with an embodiment of the present invention. Sensor-image <NUM>, as viewed through display <NUM>, depicts buildings <NUM>, <NUM>, <NUM> at a certain perspective. A reticle <NUM> is to be superimposed onto window <NUM> of building <NUM>, in order to present to the viewer of display <NUM> relevant information about that window <NUM> (for example, to indicate to the viewer that this window <NUM> represents the window of an office that he/she is intending to visit). User device <NUM> assumes the geolocation of imaging sensor <NUM> to be at deviated coordinates (X<NUM>+ΔX, Y<NUM>+ΔY, Z<NUM>+ΔZ; α<NUM>+Δα, β<NUM>+Δβ, λ<NUM>+Δλ), and therefore assumes window <NUM> to be located on sensor-image <NUM> at image plane coordinates (x+Δx, y+Δy, z+Δz), as determined based on the geolocation of window <NUM> (X, Y, Z) relative to the (deviated) geolocation of imaging sensor <NUM>, using a suitable camera model. As a result, the reticle <NUM> is superimposed on sensor-image <NUM> at image plane coordinates (x+Δx, y+Δy, z+Δz). However, since the true location of window <NUM> on sensor-image <NUM> is at image plane coordinates (x, y, z), reticle <NUM> appears slightly away from window <NUM> on sensor-image <NUM>. Consequently, the viewer may inadvertently think that reticle <NUM> is indicating a different window, such as window <NUM> or window <NUM>, rather than window <NUM>. It is appreciated that the present disclosure uses capital letters to denote real-world geolocation coordinates (e.g., X, Y, Z), while using lower case letters to denote image coordinates (e.g., x, y, z).

Referring back to <FIG>, processor <NUM> obtains a copy of sensor-image <NUM> along with the detected position coordinates (X<NUM>,+ΔX Y<NUM>+ΔY, Z<NUM>+ΔZ) and viewing angle coordinates (α<NUM>+Δα, β<NUM>+Δβ, λ<NUM>+Δλ) of imaging sensor <NUM> (and any other relevant imaging parameters) from user device <NUM>. Processor <NUM> then proceeds to generate a corresponding image <NUM> of scene <NUM> based on 3D model <NUM>. In particular, processor <NUM> generates a virtual image of the real-world representation of scene <NUM> contained within 3D model <NUM> (e.g., using 3D rendering techniques), where the virtual image is what would be acquired by a hypothetical imaging sensor using the imaging parameters associated with sensor-image <NUM> as obtained from user device <NUM>. The resultant model-image <NUM> should appear quite similar, and perhaps nearly identical, to sensor-image <NUM> since similar imaging parameters are applied to both images <NUM>, <NUM>. For example, the portions of buildings <NUM>, <NUM>, <NUM> that were visible on sensor-image <NUM> are also visible on model-image <NUM>, and appear at a similar perspective. Nevertheless, there may be certain variations and discrepancies between images <NUM> and <NUM>, arising from the inaccuracy of the detected geolocation of imaging sensor <NUM> by user device <NUM>, relative to its true geolocation, as discussed hereinabove. In particular, model-image <NUM> is based on a (hypothetical) imaging sensor geolocated at (deviated) coordinates (X<NUM>+ΔX, Y<NUM>+ΔY, Z<NUM>+ΔZ; α<NUM>+Δα, β<NUM>+Δβ, λ<NUM>+Δλ) when imaging scene <NUM>, since those are the imaging parameters that were detected by user device <NUM>, whereas sensor-image <NUM> is based on (actual) imaging sensor <NUM> that was geolocated at (true) coordinates (X<NUM>, Y<NUM>, Z<NUM>; α<NUM>, β<NUM>, λ<NUM>) when imaging scene <NUM>. Consequently, the mapping of window <NUM> on model-image <NUM> is at image plane coordinates (x', y', z') that are slightly different from the image plane coordinates (x, y, z) of window <NUM> on sensor-image <NUM>.

Subsequently, processor <NUM> compares the sensor-image <NUM> with the model-image <NUM>, and determines the discrepancies between the two images in three-dimensional space or six degrees of freedom (6DoF) (i.e., encompassing translation and rotation in three perpendicular spatial axes). In particular, processor <NUM> may use image registration techniques known in the art (e.g., intensity-based or feature-based registration), to determine the corresponding locations of common points or features in the two images <NUM>, <NUM>. Processor <NUM> may determine a suitable 3D transform (mapping) that would map model-image <NUM> onto sensor-image <NUM> (or vice-versa), which may include linear transforms (i.e., involving rotation, scaling, translation, and other affine transforms) and/or non-linear transforms.

After the model-image <NUM> and sensor-image <NUM> have been compared, processor <NUM> can then determine the true geolocation of imaging sensor <NUM> based on the discrepancies between the two images <NUM>, <NUM>. Consequently, deviations in the image contents displayed in sensor-image <NUM> arising from the inaccuracy of the detected geolocation of imaging sensor <NUM> can be corrected, allowing geographically-registered AR content to be accurately displayed on sensor-image <NUM>. In particular, processor <NUM> determines an updated position and orientation of imaging sensor <NUM>, which would result in model-image <NUM> being mapped onto sensor-image <NUM> (i.e., such that the image location of a selected number of points or features in model-image <NUM> would substantially match the image location of those corresponding points or features as they appear in sensor-image <NUM>, or vice-versa). In other words, the updated geolocation (position and orientation) of imaging sensor <NUM> corresponds to the geolocation of a (hypothetical) imaging sensor that would have acquired an updated model-image resulting from the mapping of model-image <NUM> onto sensor-image <NUM>. The determined updated geolocation of imaging sensor <NUM> should correspond to its actual or true geolocation when acquiring sensor-image <NUM> (i.e., position coordinates X<NUM>, Y<NUM>, Z<NUM>; and orientation coordinates α<NUM>, β<NUM>, λ<NUM>).

Supplementary AR content can then be accurately displayed on sensor-image <NUM> in relation to a selected image location or in relation to the real-world geolocation of an object or feature in scene <NUM> that appears on sensor-image <NUM>, in accordance with the updated geolocation of imaging sensor <NUM>. For example, user device <NUM> identifies at least one scene element viewable on sensor-image <NUM>, in relation to which supplementary AR content is to be displayed. User device <NUM> determines the real-world geolocation of the scene element, and then determines the corresponding image location of the scene element on sensor-image <NUM>, based on the geolocation of the scene element with respect to the updated geolocation of imaging sensor <NUM> (as determined by processor <NUM> from the discrepancies between model-image <NUM> and sensor-image <NUM>). Display <NUM> then displays the supplementary AR content on sensor-image <NUM> at the appropriate image location relative to the determined image location of the scene element on sensor-image <NUM>. In this manner, an "inaccurate" image location of the scene element as initially determined based on the (inaccurate) detected geolocation of imaging sensor <NUM>, may be corrected to the "true" image location of the scene element as it actually appears on sensor-image <NUM>, such that geographically-registered AR content can be accurately displayed on sensor-image <NUM> in conformity with the location of the scene element on the sensor-image. It is appreciated that the term "scene element" as used herein may refer to any point, object, entity, or feature (or a group of such points, objects, entities or features) that are present in the sensor-image acquired by the imaging sensor of the present invention. Accordingly, the "image location of a scene element" may refer to any defined location point associated with such a scene element, such as an approximate center of an entity or feature that appears in the sensor-image.

Reference is now made to <FIG>, which is a schematic illustration of the exemplary supplementary content of <FIG> being accurately superimposed onto the sensor-image, operative in accordance with an embodiment of the present invention. Following the example depicted in <FIG>, a reticle <NUM> is to be superimposed onto window <NUM> of building <NUM>, in order to present relevant information about window <NUM> to the viewer of display <NUM>. User device <NUM> initially assumes the geolocation of imaging sensor <NUM> to be at (deviated) geolocation coordinates (X<NUM>+ΔX, Y<NUM>+ΔY, Z<NUM>+ΔZ; α<NUM>+Δα, β<NUM>+Δβ, λ<NUM>+Δλ), based on which reticle <NUM> would be superimposed at deviated image plane coordinates (x+Δx, y+Δy, z+Δz) on sensor-image <NUM> (<FIG>). Processor <NUM> determines updated geolocation coordinates of imaging sensor <NUM> (X<NUM>, Y<NUM>, Z<NUM>; α<NUM>, β<NUM>, λ<NUM>), in accordance with the discrepancies between sensor-image <NUM> and model-image <NUM>. User device <NUM> then determines updated image plane coordinates of window <NUM> on sensor-image <NUM> (x, y, z), based on the real-world geolocation coordinates of window <NUM> (X, Y, Z) relative to the updated real-world geolocation coordinates of imaging sensor <NUM> (X<NUM>, Y<NUM>, Z<NUM>; α<NUM>, β<NUM>, λ<NUM>). Reticle <NUM> is then superimposed on sensor-image <NUM> at the updated image plane coordinates (x, y, z), such that it appears at the same location as window <NUM> on sensor-image <NUM> (i.e., at the true image location of window <NUM>). Consequently, the viewer of display <NUM> sees reticle <NUM> positioned directly onto window <NUM> of building <NUM>, so that it is clear that the reticle <NUM> is indicating that particular window <NUM>, rather than a different window in the vicinity of window <NUM> (such as windows <NUM>, <NUM>).

It is appreciated that the supplementary AR content projected onto display <NUM> may be any type of graphical or visual design, including but not limited to: text; images; illustrations; symbology; geometric designs; highlighting; changing or adding the color, shape, or size of the image feature (environmental element) in question; and the like. Furthermore, supplementary AR content may include audio information, which may be presented in addition to, or instead of, visual information, such as the presentation of video imagery or relevant speech announcing or elaborating upon features of interest that are viewable in the displayed image.

The operator of user device <NUM> viewing image <NUM> on display <NUM> may designate at least one object of interest on image <NUM>, and then processor <NUM> may display appropriate AR content related to the designated object(s) of interest. For example, referring to <FIG>, the operator may select building <NUM> on image <NUM>, such as via a speech command or by marking building <NUM> with a cursor or touch-screen interface on display <NUM>. In response, processor <NUM> identifies the designated object as representing building <NUM>, determines relevant information regarding the designated object, and then projects relevant supplementary content in relation to that designated object (such as the address, a list of occupants or shops residing in that building, and the like) superimposed onto image <NUM> viewed on display <NUM>, in conformity with the location of building <NUM> as it appears on image <NUM>.

Processor <NUM> may also use the updated geolocation of imaging sensor <NUM> to extract correct real-world geolocation information relating to scene <NUM>, without necessarily projecting supplementary AR content on sensor-image <NUM>. For example, processor <NUM> may determine the real-world geolocation coordinates of an object or feature in scene <NUM>, such as the real-world geolocation of window <NUM>, from 3D model <NUM>, based on the determined updated geolocation of imaging sensor <NUM>. In particular, processor <NUM> identifies the updated geolocation coordinates of imaging sensor <NUM> (X<NUM>, Y<NUM>, Z<NUM>; α<NUM>, β<NUM>, λ<NUM>) in 3D model <NUM>, and projects a vector extending from the imaging sensor coordinates to the object of interest coordinates within the 3D model, the projection vector having a length corresponding to the range from the imaging sensor geolocation to the object of interest geolocation (where the range is determined using any suitable means, such as a rangefinder). For example, processor <NUM> determines the coordinates of a vector in 3D model <NUM> extending from the updated geolocation coordinates of imaging sensor <NUM> (X<NUM>, Y<NUM>, Z<NUM>; α<NUM>, β<NUM>, λ<NUM>) and having a length equal to the range from imaging sensor <NUM> to window <NUM>, such that the end position of the vector indicates the geolocation coordinates of window <NUM> (X, Y, Z).

According to an example of the present invention, geographically-registered supplementary content may be projected onto a sequence of displayed images with imaging parameters that change over time, where the position and orientation of the image contents is tracked and the relevant AR content is updated accordingly. For example, referring to <FIG>, imaging sensor <NUM> may acquire a second image (not shown) of scene <NUM>, at a different position and viewing angle (e.g., X<NUM>, Y<NUM>, Z<NUM>; α<NUM>, β<NUM>, λ<NUM>) than that associated with the previous image <NUM>. Correspondingly, user device <NUM> would detect an inaccurate geolocation of imaging sensor <NUM> during the acquisition of the second sensor-image (e.g., at deviated coordinates X<NUM>+ΔX<NUM>, Y<NUM>+ΔY<NUM>, Z<NUM>+ΔZ<NUM>; α<NUM>+Δα<NUM>, β<NUM>+Δβ<NUM>, λ<NUM>+Δλ<NUM>), and would therefore map window <NUM> on the second sensor-image at a second set of deviated image coordinates (e.g., x+Δx<NUM>, y+Δy<NUM>, z+Δz<NUM>) which differs from the window coordinates in the first sensor-image (x, y, z). In order to present correctly georegistered AR content associated with window <NUM> on the second sensor-image, one approach is to repeat the aforementioned process described for a single image. In particular, processor <NUM> generates a second model-image from 3D model <NUM>, the second model-image representing a virtual image as acquired in 3D model <NUM> with a hypothetical imaging sensor using the detected imaging parameters associated with the second model-image. Processor <NUM> then compares and determines discrepancies between the second model-image and the second sensor-image, and determines the image plane coordinates of window <NUM> on the second sensor-image based on the geolocation of window <NUM> with respect to an updated geolocation of imaging sensor <NUM> as determined from the discrepancies between the second model-image and the second sensor-image. The relevant supplementary AR content (e.g., reticle <NUM>) is then displayed at the determined image plane coordinates on the second sensor-image, such that reticle <NUM> will be displayed at the same image location as window <NUM> as it actually appears on the second sensor-image. A second approach is to utilize standard image tracking techniques to track the location of the scene element between image frames in order to determine the correct placement for superposition of the AR content in subsequent frames, and then intermittently apply the aforementioned process (i.e., determining an updated model-image, comparing with the associated sensor-image, and determining an updated geolocation of imaging sensor <NUM> accordingly) after a selected number of frames in order to "recalibrate". An additional approach would be to incorporate predicted values of the imaging sensor geolocation (i.e., predicting the future location of the operator of user device <NUM>), in accordance with a suitable prediction model.

According to another example of the present invention, geographically-registered supplementary content may be projected onto multiple displayed images of the same (or a similar) scene, acquired by a plurality of imaging sensors, each being associated with respective imaging parameters. For example, a plurality of imaging sensors (112A, 112B, 112C) may acquire a plurality of respective sensor-images (160A, 160B, 160C) of scene <NUM>, each sensor-image being associated with at least a respective position and viewing angle (and other relevant imaging parameters). Thus, window <NUM> of building <NUM> may appear at a slightly different image location at each of the respective sensor-images 160A, 160B, 160C. Processor <NUM> generates a set of model-images from 3D model <NUM>, each model-image (170A, 170B, 170C) respective of each of the sensor-images (160A, 160B, 160C) based on the associated detected imaging parameters. Subsequently, processor <NUM> compares between each sensor-image and its respective model-image (170A, 170B, 170C), and determines the discrepancies and deviations between each pair of images. Processor <NUM> then determines the true geolocation of each imaging sensor (112A, 112B, 112C) for its respective sensor-image (160A, 160B, 160C), based on the discrepancies between each sensor-image (160A, 160B, 160C) and its respective model-image (170A, 170B, 170C). A selected image location (e.g., associated with a scene element) is then determined for each sensor-image (160A, 160B, 160C) based on the determined real-world geolocation of the respective imaging sensor (112A, 112B, 112C), and the respective supplementary AR content is superimposed at the correct geographically-registered image coordinates on each of the sensor-images (160A, 160B, 160C) presented on a plurality of displays (114A, 114B, 11C). An example of such a scenario may be a commander of a military sniper unit who is directing multiple snipers on a battlefield, where the commander and each of the snipers are viewing the potential target at different positions and viewing angles through the sighting device of their respective weapons. The commander may then indicate to each of the snipers the exact position of the desired target with respect to the particular image being viewed by that sniper, in accordance with the present invention. In particular, images of the potential target acquired by the cameras of each sniper are processed, and a model-image respective of each sniper's image is generated using the 3D geographic model, based on the detected imaging parameters associated with the respective sniper image. The discrepancies between each model-image and the respective sniper image are determined, and the geolocation of each sniper camera for its respective sniper image is determined based on these discrepancies. Subsequently, an appropriate symbol (such as a reticle) can be superimposed onto the sighting device being viewed by each respective sniper, at the image location of the desired target as it appears on the respective sniper's image.

According to a further example of the present invention, 3D geographic model <NUM> may be updated based on real-time information, such as information obtained in the acquired sensor-image <NUM>, following the image georegistration process. In particular, after the updated geolocation of imaging sensor <NUM> has been determined in accordance with the discrepancies between sensor-image <NUM> and model-image <NUM>, the texture data contained within 3D model <NUM> may be amended to conform with real-world changes in the relevant geographical features or terrain. For example, processor may identify a discrepancy between a particular characteristic of a geographical feature as it appears in recently acquired sensor-image <NUM> and the corresponding characteristic of the geographical feature as currently defined in 3D model <NUM>, and then proceed to update 3D model <NUM> accordingly.

It is appreciated that 3D geographic model <NUM> may be stored in a remote server or database, and may be accessed by processor <NUM> partially or entirely, as required. For example, processor <NUM> may retrieve only the relevant portions of 3D model <NUM> (e.g., only the portions relating to the particular region or environment where scene <NUM> is located), and store the data in a local cache memory for quicker access. Processor <NUM> may also utilize the current geolocation of user device <NUM> (i.e., as detected using GPS <NUM>) in order to identify a suitable 3D geographic model <NUM>, or section thereof, to retrieve. In other words, a location-based 3D model <NUM> may be selected in accordance with the real-time geolocation of user device <NUM>.

According to yet another example of the present invention, information relating to georegistered images over a period of time may be stored, and then subsequent image georegistration may be implemented using the previously georegistered images, rather than using 3D model <NUM> directly. For example, a database (not shown) may store the collection of sensor-images captured by numerous users of system <NUM>, along with relevant image information and the associated true position and orientation coordinates as determined in accordance with the discrepancies between the sensor-image and corresponding model-image generated from 3D model <NUM>. After a sufficient amount of georegistered sensor-images have been collected, then subsequent iterations of georegistration may bypass 3D model <NUM> entirely. For example, system <NUM> may identify that a new sensor-image was captured at a similar location to a previously georegistered sensor-image (e.g., by identifying a minimum of common environmental features or image attributes in both images). System <NUM> may then determine an updated position and orientation for the new sensor-image directly from the (previously determined) position and orientation of the previously georegistered sensor-image at the common location (based on the discrepancies between the two images), rather than from a model-image generated for the new sensor-image.

Reference is now made to <FIG>, which is a block diagram of a method for image georegistration, operative in accordance with an embodiment of the present invention. In procedure <NUM>, a sensor-image of a scene is acquired with an imaging sensor. Referring to <FIG> and <FIG>, imaging sensor <NUM> acquires an image <NUM> of scene <NUM> that includes a plurality of buildings <NUM>, <NUM>, <NUM>.

In procedure <NUM>, imaging parameters of the acquired sensor-image are obtained, the imaging parameters including at least the detected 3D position and orientation of the imaging sensor when acquiring the sensor-image, as detected using as least one location measurement unit. Referring to <FIG> and <FIG>, processor <NUM> receives imaging parameters associated with the acquired sensor-image <NUM> from user device <NUM>. The imaging parameters includes at least the real-world geolocation (position and orientation) of imaging sensor <NUM> while acquiring sensor-image <NUM>, as detected via GPS <NUM> and compass <NUM> of user device <NUM>. The detected geolocation of imaging sensor <NUM> includes position coordinates (X<NUM>+ΔX, Y<NUM>+ΔY, Z<NUM>+ΔZ) and viewing angle coordinates (α<NUM>+Δα, β<NUM>+Δβ, λ<NUM>+Δλ), which are deviated with respect to the true or actual position coordinates (X<NUM>, Y<NUM>, Z<NUM>) and orientation coordinates (α<NUM>, β<NUM>, λ<NUM>) of imaging sensor <NUM> in three-dimensional space (six degrees of freedom).

In procedure <NUM>, a model-image of the scene is generated from a 3D geographic model, the model-image representing a 2D image of the scene as acquired in the 3D model using the obtained imaging parameters. Referring to <FIG> and <FIG>, processor <NUM> generates a model-image <NUM> of scene <NUM> based on the 3D geographic data contained in 3D model <NUM>. The model-image <NUM> is a virtual image that would be acquired by a hypothetical imaging sensor imaging scene <NUM> using the imaging parameters obtained from user device <NUM>, where the imaging parameters includes the detected geolocation of imaging sensor <NUM> while acquiring sensor-image <NUM>, as detected via GPS <NUM> and compass <NUM>. Accordingly, the model-image <NUM> is based on a hypothetical imaging sensor geolocated at deviated coordinates (X<NUM>+ΔX, Y<NUM>+ΔY, Z<NUM>+ΔZ; α<NUM>+Δα, β<NUM>+Δβ, λ<NUM>+Δλ) when imaging scene <NUM>. Model-image <NUM> should depict mostly the same environmental features (i.e., buildings <NUM>, <NUM>, <NUM>) depicted in sensor-image <NUM>, but they may be located at slightly different image plane coordinates in the two images.

In procedure <NUM>, the sensor-image and the model-image is compared, and discrepancies between the sensor-image and the model-image are determined. Referring to <FIG> and <FIG>, processor <NUM> compares sensor-image <NUM> with model-image <NUM>, and determines the deviations or discrepancies between the two images <NUM>, <NUM> in three-dimensional space (six degrees of freedom). Processor <NUM> may use image registration techniques known in the art to determine the corresponding locations of common points or features in the two images <NUM>, <NUM>, and may determine a transform or mapping between the two images <NUM>, <NUM>.

In procedure <NUM>, an updated 3D position and orientation of the imaging sensor is determined in accordance with the discrepancies between the sensor-image and the model-image. Referring to <FIG>, processor <NUM> determines an updated geolocation of imaging sensor <NUM> based on the discrepancies between sensor-image <NUM> and model-image <NUM>. In particular, processor <NUM> determines an updated position and orientation of imaging sensor <NUM>, such that the image location of a selected number of points or features in model-image <NUM> would substantially match the image location of those corresponding points or features as they appear in sensor-image <NUM> (or vice-versa). The determined updated geolocation of imaging sensor <NUM> (X<NUM>, Y<NUM>, Z<NUM>; α<NUM>, β<NUM>, λ<NUM>) should correspond to its actual or true geolocation when acquiring sensor-image <NUM>.

In procedure <NUM>, supplementary content is displayed overlaid on the sensor-image in relation to a selected location on the sensor-image, as determined based on the updated position and orientation of the imaging sensor. Referring to <FIG> and <FIG>, user device <NUM> determines the image plane coordinates of window <NUM> on sensor-image <NUM> (x, y, z), based on the real-world geolocation coordinates of window <NUM> (X, Y, Z) relative to the updated real-world geolocation coordinates of imaging sensor <NUM> (X<NUM>, Y<NUM>, Z<NUM>; α<NUM>, β<NUM>, λ<NUM>). A reticle <NUM> is superimposed onto sensor-image <NUM> at the determined image coordinates of window <NUM> (x, y, z), such that the viewer of display <NUM> sees reticle <NUM> positioned directly over window <NUM> on sensor-image <NUM>.

In procedure <NUM>, the geographic location of a scene element is determined, using the 3D geographic model and the updated position and orientation of the imaging sensor. Referring to <FIG> and <FIG>, processor <NUM> determines the real-world geolocation coordinates of window <NUM> (X, Y, Z), as indicated by the coordinates of a vector in 3D model <NUM> extending from the updated geolocation coordinates of imaging sensor <NUM> (X<NUM>, Y<NUM>, Z<NUM>; α<NUM>, β<NUM>, λ<NUM>) and having a length equal to the range from imaging sensor <NUM> to window <NUM>. The determined geolocation coordinates (X, Y, Z) may then be indicated to the viewer if desired, such as being indicated on sensor-image <NUM> as viewed on display <NUM>.

The present invention is applicable to augmented reality presentation for any purpose, and may be employed in a wide variety of applications, for projecting any type of graphical imagery or AR content onto a real-world environment in order to modify the viewer's perception of that environment. For example, the present invention may be utilized for various military objectives, such as for guiding troops, directing weaponry, and providing target information or indications of potential dangers. Another example is for security related applications, such as for analyzing surveillance imagery, directing surveillance cameras towards a particular target, or assisting the deployment of security personnel at a crime scene. Yet another potential application is for navigation, such as providing directions to a specific location at a particular street or building. Further exemplary applications include education (e.g., such as augmenting an illustration of a particular topic or concept to enhance student comprehension); entertainment (e.g., such as by augmenting a broadcast of a sporting event or theatre performance); and tourism (e.g., such as by providing relevant information associated with a particular location or recreating simulations of historical events).

According to another aspect of the present invention, a first camera having undergone image georegistration to a 3D model, in order to determine a corrected pose (3D position and orientation) to compensate for inaccuracies in the measured pose, can be used to determine the corrected pose of another camera imaging the same scene. The first camera may be stationary or mobile. A mobile camera may capture images of the scene from different positions and viewing angles, such as by traversing a predetermined trajectory, to facilitate effective image georegistration.

Reference is now made to <FIG>, which is a schematic illustration of a system for determining a position and orientation of one camera using another camera which is fixed and imaging a common scene, operative in accordance with an embodiment of the present invention. A first camera, referenced <NUM>, is situated in a scene <NUM> which includes buildings <NUM> and <NUM>. A second camera, referenced <NUM>, is also situated in scene <NUM>. Each of cameras <NUM>, <NUM> may be coupled to a respective fixed platform (i.e., which may be stationary or capable of limited maneuvering within the scene). The platform may include or be coupled with additional components (not shown) for performing the functions of the disclosed subject matter, such as: a processor; a location measurement unit; a memory or other storage media; a 3D geographic model; a communication channel; a user interface; a display; and the like.

First camera <NUM> may be characterized with enhanced registration capabilities with respect to second camera <NUM>. For example, second camera <NUM> may have a limited coverage of scene <NUM>, whereas camera <NUM> may have a greater scene coverage, such as due to their respective locations. Camera <NUM> may also be associated with limited computing components (e.g., on the respective platform), such as limited processing power, limited memory, or limited bandwidth, as compared to the computing components coupled with camera <NUM>. Camera <NUM> may also have limited or inferior imaging capabilities which may impair its georegistration capabilities relative to camera <NUM>, such as, for example: a limited field of view (FOV); a low resolution; reduced sensitivity or dynamic range; limited range of operating frequencies; being influenced by environmental factors (e.g., being directed toward the sun or toward a fog); being subject to vibrations; having debris on the lens; having optical distortions; subject to a physical obstruction (e.g., an object situated in the camera LOS); and the like. Given the relatively superior georegistration capabilities of first camera <NUM>, a corrected pose of first camera <NUM> is obtained by georegistration to a 3D model using the aforementioned georegistration process (described hereinabove with reference to <FIG>, <FIG>, <FIG> and <FIG>). An initial pose estimation of second camera <NUM> may be obtained from a measurement unit coupled with camera <NUM>, and a corrected pose of second camera <NUM> is determined using first camera <NUM>. In particular, first camera <NUM> captures a first image of scene <NUM> with a respective FOV <NUM>. The first image is processed (via a processor, not shown) to extract scene features, such as feature <NUM>, e.g., representing a region of a surface of building <NUM>, and features <NUM> and <NUM>, e.g., representing regions of a surface of building <NUM>. Each extracted feature (<NUM>, <NUM>, <NUM>) is also assigned a respective descriptor, representing an indexing data structure for identifying the feature in the image, the descriptor typically having minimal data size. The 3D position and orientation of each extracted feature (<NUM>, <NUM>, <NUM>) is then determined by mapping each feature to a 3D geographic model, using known image mapping techniques. The feature descriptors and the 3D position and orientation of each feature are then transmitted to the second platform containing second camera <NUM>. A low bandwidth channel may be sufficient for the data transmission, since the transmitted content (feature descriptors and feature location coordinates) is of minimal data size and requires substantially less bandwidth than for transmitting a full image.

Second camera <NUM> having a respective FOV <NUM> captures a second image of scene <NUM>. The second image is processed to extract scene features, such as building features <NUM>, <NUM> and <NUM>, and to assign a respective descriptor for each extracted feature. The scene features extracted from the second camera image is then matched with the scene features extracted from the first camera image. The 3D position and orientation of second camera <NUM> is then determined from the known 3D coordinates of the features in the scene and their corresponding 2D projections in the second image, using known techniques for solving the "Perspective-n-Point (PNP) problem". In this manner, the true pose of the second camera <NUM> can be obtained without needing to supply a digital map or geographic model of the scene at the second platform. Thus, the second platform containing the second platform may contain minimal supporting components, such as low processing power and low memory capacity, as well as low communication bandwidth. Telemetry data obtained from one or both of cameras <NUM>, <NUM> may be used to ensure that the respective images represent a common scene (i.e., such that the images captured by cameras <NUM>, <NUM> contain at least some common scene features), for example by using telemetry data to redirect and/or reposition the cameras if necessary.

Reference is now made to <FIG>, which is a schematic illustration of a system for determining a position and orientation of one camera using another camera which is mobile and imaging a common scene, operative in accordance with an embodiment of the present invention. A first camera, referenced <NUM>, is situated in scene <NUM> with buildings <NUM> and <NUM>. Camera <NUM> is coupled to a mobile platform, such as an aircraft or an unmanned aerial vehicle (UAV) or drone, capable of freely maneuvering to different locations within scene <NUM>. A fixed second camera, referenced <NUM>, is also situated in scene <NUM>. For example, second camera may be coupled to a stationary platform, such as a ground level post or a stationary vehicle, where the fixed platform may be capable of movement but with limited maneuvering within the scene. Each platform may include or be coupled with additional components (not shown) for performing the functions of the disclosed subject matter, such as: a processor; a location measurement unit; a memory or other storage media; a 3D geographic model; a communication channel; a user interface; a display; and the like.

Cameras <NUM> and <NUM> are analogous to respective cameras <NUM> and <NUM> (<FIG>), with the exception that camera <NUM> is mobile and capable of imaging scene <NUM> from different location and viewing angles, Accordingly, mobile camera <NUM> may be characterized with enhanced registration capabilities relative to fixed camera <NUM>, which may have limited scene coverage due to its stationary nature. Fixed camera <NUM> may also be limited in terms of one or more imaging characteristics, such as: FOV, resolution, sensitivity, dynamic range, or operating frequencies, or be subject to environmental factors, distortions or physical obstructions, or have other limitations, such as in terms of processing power and memory capacity, which serves to reduce its effectiveness to perform image georegistration, in comparison to mobile camera <NUM>.

Consequently, a corrected pose of fixed camera <NUM> can be determined from mobile camera <NUM> using the process described hereinabove in <FIG>, where the process is carried out over a sequence of locations from which mobile camera <NUM> images the scene <NUM>. In particular, mobile camera <NUM> (and its respective platform) follows a registration trajectory, referenced <NUM>, and images scene <NUM> from different viewing angles at different points along the trajectory <NUM> and transmits the relevant image data to fixed camera <NUM> (and its respective platform) for each trajectory point. For example, camera <NUM> captures one image of scene <NUM> at location coordinates 322A, another image at location coordinates 322B, and a further image at location coordinates 322C, where each location coordinate provides a different FOV. In particular, image <NUM> represents the view from location 322A with FOV 323A, image <NUM> represents the view from location 322B with FOV 323B, and image <NUM> represents the view from location 322C with FOV 323C. At location coordinates 322A, camera <NUM> is able to image scene <NUM> from a wide angle at a substantially orthogonal viewing angle, producing an image <NUM> containing diverse scene features which allows for effective georegistration. At location coordinates 322C, camera <NUM> obtains an image from a substantially ground-level viewing angle such that the resultant image <NUM> may be more difficult to perform georegistration with, but more closely matches an image <NUM> of scene <NUM> captured by fixed camera <NUM>.

Accordingly, image <NUM> may be used to perform image georegistration to a 3D model (using the georegistration process described herein above with reference to <FIG>, <FIG>, <FIG> and <FIG>) and to determine a corrected pose of mobile camera <NUM> at trajectory point 322A. Image <NUM> is then processed (via a processor, not shown) to extract scene features, such as feature <NUM>, e.g., representing a region of a surface of building <NUM>, and features <NUM> and <NUM>, e.g., representing regions of a surface of building <NUM>. Each extracted feature is assigned a respective descriptor. The 3D position and orientation of each extracted feature (<NUM>, <NUM>, <NUM>) is determined by mapping each feature to a 3D geographic model using image mapping techniques. Subsequently, mobile camera <NUM> captures another image <NUM> from trajectory point 322B, and repeats the same process in image <NUM> (extracting scene features and determining the 3D position and orientation of each extracted feature by mapping to a 3D model). A corrected pose of mobile camera <NUM> at trajectory point 322B can then be determined by matching the scene features in image <NUM> and image <NUM>, and using the known 3D feature coordinates and their corresponding 2D projections in image <NUM>. Finally, mobile camera <NUM> captures yet another image <NUM> from trajectory point 323B, extracting scene features and determining the 3D position and orientation of each extracted feature by mapping to a 3D model, and determines the corrected pose of camera <NUM> at trajectory point 322C using the known 3D feature coordinates and their corresponding 2D projections in image <NUM>. Since image <NUM> is captured from a viewing angle substantially similar to fixed camera <NUM>, the features in image <NUM> can be effectively matched to an image captured by camera <NUM>. Thus, the 3D position and orientation of the scene features extracted in image <NUM>, along with the respective feature descriptors, are transmitted to the platform containing fixed camera <NUM>. Camera <NUM> captures image <NUM> of scene <NUM> with FOV <NUM>, and image <NUM> is processed to extract scene features, such as building features <NUM>, <NUM> and <NUM>, and providing a respective descriptor for each extracted feature. The scene features extracted from image <NUM> is then matched with the scene features extracted from image <NUM> (captured by mobile camera <NUM> at trajectory point 322C), and a corrected 3D pose of fixed camera <NUM> is determined from the known 3D coordinates of the features in the scene and their corresponding 2D projections in image <NUM> (using known PNP solution techniques). Consequently, the platform containing mobile camera <NUM> may be equipped with a large database and high processing power allowing for direct image georegsitration (i.e., via the 3D model) at different scene locations, whereas the platform containing fixed camera <NUM> can have no database as well as limited processing capabilities and low bandwidth, while still allowing for effective indirect georegistration (i.e., via mobile camera <NUM>) for determining the true pose of fixed camera <NUM>.

The trajectory <NUM> traversed by mobile camera <NUM> may be selected such that mobile camera <NUM> eventually reaches a location that matches the pose of fixed camera <NUM> as closely as possible, while accounting for maneuvering limitations or other movement constraints in the scene, such as by initially computing a suitable preplanned movement trajectory.

The feature data (feature descriptors and feature location coordinates) obtained by mobile camera <NUM> along the trajectory <NUM>, may be uploaded to a central database server, and subsequently used by another platform/camera to perform georegistration at a later point in time. For example, a third camera mounted on a vehicle (or other platform) that passes through at least one of the trajectory locations 322A, 322B, 322C at a later date or time, may access the feature descriptors and associated 3D location coordinates of the scene features as determined by mobile camera <NUM> at each of the respective locations 322A, 322B, 322C, which can then be used to determine the pose of the third camera at this location and/or to determine the pose of yet another camera at a similar location (i.e., by matching the scene features in the respective images via the process described hereinabove). More generally, scene features (and associated feature data) may be extracted offline, such as using stored feature information relating to images previously captured at the same or similar locations and viewing angles in the scene. Alternatively, the feature data used for georegistration may be based on a combination of offline data (i.e., obtained from prestored information relating to a previously captured image) and real-time data (i.e., obtained from a current camera image), which may be differentially weighted in a suitable manner, such as accounting for the fact that real-time feature data is typically more effective than offline data.

According to another aspect of the present invention, a plurality of cameras mounted on a common rig or integrated assembly, may utilize one of the cameras in the assembly for determining the corrected pose (3D position and orientation) of another one of the cameras to compensate for inaccuracies in its measured pose. If the relative pose between each of the cameras in the assembly is known, then the (global) pose of a first camera in the assembly can be obtained by georegistration to a 3D model, and subsequently the (global) pose of the other cameras can be obtained based on their relative pose in relation to the first camera.

Reference is now made to <FIG>, which is a schematic illustration of a system for determining a position and orientation of one camera of a camera assembly using another camera of the camera assembly, operative in accordance with a further embodiment of the present invention. A camera assembly, referenced <NUM>, is situated in a scene <NUM>. Camera assembly <NUM> includes a plurality of cameras, referenced <NUM>, <NUM>, <NUM>, <NUM>. The cameras <NUM>, <NUM>, <NUM>, <NUM> are rigidly coupled to a movable or a stationary platform, such as a building or a vehicle, or an HMD worn by a user, where the global location of the platform at a given moment is known. The platform may include or be coupled with additional components (not shown) for performing the functions of the disclosed subject matter, such as: a processor; a location measurement unit; a memory or other storage media; a 3D geographic model; a communication channel; a user interface; a display; and the like.

The relative position and orientation between each of the cameras <NUM>, <NUM>, <NUM>, <NUM> in camera assembly <NUM> is predefined and known, such as for example displacement vector <NUM> between camera <NUM> and camera <NUM>. Each camera has a respective FOV and is directed to a respective region of the scene <NUM>, which may or may not overlap with the coverage region of other cameras. For example, camera <NUM> is directed to a region containing a first scene feature <NUM>, whereas camera <NUM> is directed to a different scene region containing a second scene feature <NUM>. The cameras <NUM>, <NUM>, <NUM>, <NUM> of assembly <NUM> may include the same types of image sensors with substantially the same properties and capabilities, or alternatively the types, properties and capabilities of at least some of the cameras may be different. For example, camera <NUM> covering FOV <NUM> may be configured to operate in the visible light spectral range, and intended for daytime use and is pointed in an elevated direction toward the sky, whereas camera <NUM> covering FOV <NUM> is an infrared (IR) camera operating in the IR spectral range and directed downwards toward the ground. More generally, at least one of the cameras <NUM>, <NUM>, <NUM>, <NUM> in assembly <NUM> may be characterized with enhanced registration capabilities relative to the other cameras in assembly <NUM>, and conversely at least one of the cameras <NUM>, <NUM>, <NUM>, <NUM> may be unable to implement direct georegistration effectively. For example, the cameras <NUM>, <NUM>, <NUM>, <NUM> in assembly <NUM> may differ in terms of one or more imaging characteristics, including but not limited to: type of scene coverage; FOV, resolution, sensitivity, dynamic range, operating frequencies, environmental factors, ambient light, daytime vs nighttime operation; physical obstructions, and image quality effects (e.g., debris, noise, vibrations). For example, if the scene features are more diverse or less monotonous in an image captured by one camera, then it may be easier to perform direct geogregistration with such an image as compared to a different camera that can only capture images that contains less feature diversity. The totality of characteristics of each camera may influence its ability and/or effectiveness to perform image georegistration using a 3D model. Some of these camera characteristics may also be dynamic, such as weather or environmental factors, or ambient lighting, such that the relative georegistration ability of each camera may change over time. Accordingly, each camera <NUM>, <NUM>, <NUM>, <NUM> in assembly <NUM> may be assigned a ranking accounting for different criteria that affects its ability and/or effectiveness to perform (direct) image georegistration, where the different criteria may be weighted in terms of their relative importance, and may be dynamic. The camera with the "highest" ranking (i.e., deemed to be most effective for georegistration) may then be selected to perform direct georegistration, and used for determining the pose of other cameras in the assembly.

For example, camera <NUM> operating in the IR spectral range and directed downwards may be deemed to be the camera most effective for image georegistration in camera assembly <NUM> (e.g., the scene features <NUM> contained in the FOV <NUM> of camera <NUM> may be considered to contain the highest feature diversity). Accordingly, a corrected pose of camera <NUM> is obtained by georegistrering at least one image captured by camera <NUM> to a 3D model (using the image georegistration process described hereinabove with reference to <FIG>, <FIG>, <FIG> and <FIG>). A corrected pose of another of cameras <NUM>, <NUM>, <NUM> of assembly <NUM> can then be determined using its relative pose to camera <NUM> and the obtained pose of camera <NUM>. For example, an initial pose estimation of camera <NUM> is obtained from a measurement unit coupled with camera <NUM>, and a corrected pose of camera <NUM> is determined based on the global pose (i.e., position and orientation in the world) of camera <NUM> (as determined using direct image georegistration) and the relative position and orientation between camera <NUM> and camera <NUM> (represented by displacement vector <NUM>). Similarly, a corrected pose of camera <NUM> or camera <NUM> can subsequently be determined, using the respective relative pose to either camera <NUM> or camera <NUM>, for which a corrected global pose has already been determined. The distance between the camera and a scene feature in a captured image (e.g., between camera <NUM> and scene feature <NUM>) can be obtained using a rangefinder or other measurement unit, and the distance measurement may be used to facilitate or supplement the pose determination.

Claim 1:
A computer-implemented method for determining a position and orientation of at least one camera of a camera assembly (<NUM>) comprising a plurality of cameras (<NUM>, <NUM>, <NUM>, <NUM>) directed to respective imaging directions, using another camera of the camera assembly (<NUM>), wherein the relative position and orientation between each of the cameras (<NUM>, <NUM>, <NUM>, <NUM>) is known, the method comprising the procedures of:
capturing at least one image of a scene (<NUM>) with a first camera (<NUM>) of the camera assembly (<NUM>), and determining the 3D position and orientation coordinates of the first camera (<NUM>) by georegistering the captured image to a 3D geographic model;
determining 3D position and orientation coordinates of at least a second camera (<NUM>) of the camera assembly (<NUM>), based on the determined global position and orientation of the first camera (<NUM>), and the relative position and orientation (<NUM>) of the second camera (<NUM>) relative to the first camera (<NUM>).