Patent Description:
Scenes captured, for instance, from overhead imaging platforms can include various objects or items. However, details in one region of the scene can be obscured in a shadow, and items of relatively similar color can blend together. Moreover, high light areas of the scene may be saturated, or the low light areas may be too noisy, or both. Accordingly, it can be difficult to distinguish certain details from their surroundings in an image captured from an overhead imaging platform. While higher resolution platforms can be used, they can also increase overall system costs.

<NPL>" describes a tool that, using the WGS84 spheroidal Earth model, finds the latitude and longitude on Earth where a reflection of this type could be produced, given input Sun and satellite coordinates. This tool enables the user to determine if the surface at the solution latitude and longitude is in fact reflective, thus identifying the sensor response as a true glint or an event requiring further analysis.

Aspects and advantages of the present disclosure will be set forth in part in the following description.

The matter for protection is defined by the appended claims.

Aspects and advantages of various embodiments will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the present disclosure and, together with the description, serve to explain the related principles.

A full and enabling description of the present disclosure, directed to one of ordinary skill in the art, is set forth in the specification, which makes reference to the appended figures, in which:.

Example aspects of the present disclosure are directed to enhancing object feature visibility for overhead imaging. For instance, a ground based computing system (e.g., associated with a control center) can determine one or more image capture condition(s) for an imaging platform (e.g., included on a satellite). The image capture condition(s) can include one or more constraint(s) for the imaging platform to follow while collecting an image. For example, the image capture condition(s) can specify a range of elevation angles and/or a range of azimuth angles at which the imaging platform should obtain image frames of a target object (e.g., a black automobile). The elevation and azimuth ranges can be associated with the positions of the imaging platform, relative to the sun (or other radiation source), at which the target object experiences a specular reflection (e.g., a mirror-like reflection due to the incidence angle of the sun's radiation and/or the position of the imaging platform). The specular reflection can be associated with a higher level of reflectance than associated with the surroundings of the target object. The computing system can send, to the imaging platform, a first set of data indicative of the positional ranges. Using this data, the imaging platform can determine when its elevation angle and azimuth angles are within the positional ranges and obtain a plurality of image frames including the target object, which may experience a specular reflection (while its surroundings may not experience such a specular reflection). The imaging platform can send the image frames to the ground based computing system, which can coordinate the processing of the image frames to create an image of the target object.

By creating an image of the target object with a specular reflection, a user of a computing system and/or an image processing system using machine learning techniques can better distinguish the target object (e.g., a black automobile) from a similar surrounding (e.g., an asphalt parking lot). For instance, the specular reflection (and the specular angles) can create a <NUM>,<NUM>% difference (e.g., in reflectance) between the target object and its surroundings. This can be beneficial, for example, to more accurately determine the number of automobiles in a parking lot.

More specifically, a ground-based computing system can be configured to create one or more image capture condition(s) for capturing an image of a target object. The target object can include, for example, an automobile, a pile of coal, and/or other objects with which a specular reflection can be created (e.g., due to a glossy surface). The image capture condition(s) can include one or more factor(s) (e.g., if/then statements) that must be met by the imaging platform while it obtains a plurality of image frames. For instance, the image capture condition(s) can include location information (e.g., geographic coordinates) associated with a region of interest and/or the target object. The imaging platform can use the location information to adjust its sensors in a particular direction such that it can obtain a plurality of image frames of the region of interest. Some of the image frames can include, at least a portion of, the target object. By way of example, the imaging platform can use the location information associated with an asphalt parking lot to adjust its sensors such that it can capture image frames of the parking lot as well as a target automobile within the parking lot.

Additionally, and/or alternatively, the image capture condition(s) can include one or more positional range(s) of the imaging platform relative to a solar source (e.g., the sun, a star, a reflective moon). The computing system can obtain information indicative of one or more location(s) of the imaging platform and information indicative of one or more location(s) of the solar source. Based on this information, the computing system can determine when the target object will experience a specular reflection for the purposes of imaging. For instance, the target object can experience a specular reflection when the imaging platform is at certain elevation angles and certain azimuth angles relative to the solar source, due to the angle of incidence and reflection of the solar source's radiation. In some implementations, the target object may experience a specular reflection when the elevation angle of the imaging platform is within +/- <NUM> degrees of the elevation angle of the solar source and when the azimuth angle of the imaging platform is within +/- <NUM> to <NUM> degrees of the azimuth angle of the solar source, as further described herein. The computing system can send a first set of data indicative of the one or more image capture condition(s) (including the positional range(s)) to the imaging platform.

The imaging platform can receive the first set of data from the computing system. For instance, the imaging platform can be an overhead imaging platform, such as a satellite, an airplane, a helicopter, an unmanned aerial vehicle (UAV), a drone, a balloon, etc. The imaging platform can travel at a height above a region of interest that contains the target object. By way of example, in the event that the imaging platform is included on a satellite orbiting the earth (e.g., above a parking lot), the imaging platform can receive the first set of data indicative of the one or more image capture condition(s) (including the positional range(s)) from one or more ground station(s) distributed globally.

The imaging platform can determine whether it is within the positional range(s) specified by the image capture condition(s). For instance, in some implementations, the imaging platform can include a navigation system (e.g., a global positioning system) to determine its location. Using the navigation system, the imaging platform can determine whether its elevation angle is within the specified range of elevation angles (e.g., +/- <NUM> degrees relative to the elevation angle of the solar source) and/or whether its azimuth angle is within the specified range of azimuth angles (e.g., +/- <NUM> to <NUM> degrees relative to the azimuth angle of the solar source). If so, the imaging platform can be located at a position at which the target object (e.g., a black automobile) may experience a specular reflection, while its surroundings may not experience such a specular reflection, due to the solar source's radiation interacting with the target object (e.g., its shiny, reflective surface).

In some implementations, the imaging platform can determine its position based on time. For instance, the computing system can determine (e.g., based on Two Line Elements, publically available data) a time range in which the imaging platform will be within the positional range(s). The image capture condition(s), sent to the imaging platform, can include this time range. Using a clock device, the imaging platform can determine when it is within the specified elevation angle and azimuth angle ranges based, at least in part, on a comparison of a current time to the time range.

The imaging platform can obtain a set of data indicative of a plurality of image frames when the position of the imaging platform is within the specified positional range(s) (e.g., when the target object experiences a specular reflection). One or more of the image frame(s) can depict, at least a portion of, the target object. For example, when the imaging platform is at an elevation angle that is within +/- <NUM> degrees of the elevation angle of the solar source and the imaging platform is at an azimuth angle that is within +/- <NUM> to <NUM> degrees of the azimuth angle of the solar source, the imaging platform can obtain the image frame(s) depicting, at least a portion of, a black automobile.

The imaging platform can send the data indicative of the image frame(s) to the computing system. The computing system can be configured to receive the image frame(s) and coordinate the processing of the image data. For example, the computing system can send the data indicative of the image frame(s) that depict, at least a portion of, a black automobile for processing by another computing system. Processing techniques can include mosaicing the image frame(s) together to reconstruct an image of an asphalt parking lot that includes the black automobile. The automobile can then be distinguished from its surroundings by an image processing computing system (e.g., via machine learning techniques) or a user of a computing system (e.g., via crowdsourcing techniques) based, at least in part, on the specular reflection of the automobile relative to its surroundings.

In accordance with the above, and as will be further described below, the apparatuses, systems, and methods of the present disclosure provide enhanced feature visibility for a target object of an overhead imaging system. More specifically, the systems and methods of the present disclosure can improve optical difference by obtaining images of target objects while they experience a specular reflection. Accordingly, the target objects can be more efficiently and reliably distinguished from their surroundings during post-reconstruction processing. In this way, the systems and methods of the present disclosure can help facilitate the identification of target objects in images, such as low dynamic range images by widening the limited range. Moreover, this can provide a fundamental improvement in the signal quality of images being analyzed, while reducing the need for expensive, higher resolution imaging platforms.

With reference now to the figures, example aspects of the present disclosure will be discussed in greater detail. <FIG> depicts an example system <NUM> for enhancing object feature visibility for overhead imaging according to example embodiments of the present disclosure. As shown, system <NUM> can include a target object <NUM>, an imaging platform <NUM>, a solar source <NUM>, and a computing system <NUM>. Imaging platform <NUM> and computing system <NUM> can be configured to communicate with one another. For example, imaging platform <NUM> and computing system <NUM> can be configured to communicate using radio frequency transmission signals.

Target object <NUM> can be included within a region of interest <NUM>. Region of interest <NUM> can be an area within the earth's atmosphere, such as on the earth's surface. Region of interest <NUM> can be, for instance, a parking lot, a port, a quarry, and/or other areas on the earth's surface. Target object <NUM> can be an object for which imaging platform <NUM> can be configured to target for one or more image frame(s). Target object <NUM> can include, for instance, at least one of an automobile, a pile of coal, and/or other object's located in region of interest <NUM>. Target object <NUM> can include a glossy reflective surface. One or more image(s) of target object <NUM> can be used to estimate a state associated with region of interest <NUM> and/or target object <NUM>. For example, the image(s) of target object <NUM> can be used to determine the number of automobiles in a parking lot, the depth of a coal pile, etc..

Imaging platform <NUM> can be configured to travel overhead region of interest <NUM> to acquire images. For instance, imaging platform <NUM> can be associated with a satellite, an aircraft, a helicopter, an unmanned aerial vehicle (UAV), a drone, a balloon, etc. Imaging platform <NUM> can include one or more computing device(s) <NUM>. Computing device(s) <NUM> can include one or more processor(s) and one or more memory device(s). The memory device(s) can be configured to store instructions that when executed by the processor(s), cause imaging platform <NUM> to perform operations, such as those for enhancing the visibility of target object <NUM> for overhead imaging, as further described herein.

Imaging platform <NUM> can be configured to travel in a path over region of interest <NUM> called a track. The path can include one or more straight lines or segments or can be a curved path. In the event that imaging platform <NUM> is associated with a satellite, the path can correspond to, at least a portion of, the orbit of the satellite. Imaging platform <NUM> can be flown at a height over region of interest <NUM>. As further described herein with reference to <FIG>, imaging platform <NUM> can be configured to obtain a plurality of image samples or frames during the travel of the platform along the path. In some implementations, the image frames can be captured in a continuous, rapid succession. The image frames can then be assembled into an output image on the ground via digital processing, as further described herein.

Solar source <NUM> can be associated with a light source that can project light onto and/or in the vicinity of target object <NUM> and/or region of interest <NUM>. In some implementations, solar source <NUM> can be a natural source (e.g., celestial body) that projects electromagnetic radiation (e.g., light) onto target object <NUM> and/or region of interest <NUM>. For instance, solar source <NUM> can include the sun, a star, a reflective moon, etc. In some implementations, solar source <NUM> can include a man-made light source that is situated above target object <NUM> and/or region of interest <NUM> and oriented to project light onto target object <NUM> and/or region of interest <NUM>.

Computing system <NUM> can be associated with a ground-based computing system. For instance, computing system <NUM> can be associated with a control center that is responsible for monitoring and controlling imaging platform <NUM> (e.g., via command signals). Computing system <NUM> can include one or more computing device(s) <NUM>. Computing device(s) <NUM> can include one or more processor(s) and one or more memory device(s). The memory device(s) can be configured to store instructions that when executed by the processor(s), cause computing device(s) <NUM> to perform operations, such as those for enhancing the visibility of target object <NUM> for overhead imaging, as further described herein (e.g., method <NUM>).

Computing device(s) <NUM> can be configured to obtain information about the locations of imaging platform <NUM> and/or solar source <NUM>. For instance, computing device(s) <NUM> can be configured to obtain a first set of information <NUM> associated with one or more location(s) of imaging platform <NUM> and/or a second set of information <NUM> associated with one or more location(s) of solar source <NUM>. In some implementations, the first and second sets of information <NUM>, <NUM> can include data associated with global position systems, speed, orbit, etc. Computing device(s) <NUM> can be configured to obtain the first and/or second sets of information <NUM>, <NUM> from one or more remote database(s) <NUM>. In some implementations, remote database(s) <NUM> can be privately available, publically available (e.g., a database associated with a satellite tracking website), and/or associated with a governmental agency (e.g., National Oceanic and Atmospheric Administration, National Aeronautics and Space Administration).

Computing device(s) <NUM> can be configured to determine the travel paths of imaging platform <NUM> and/or solar source <NUM>. For instance, computing device(s) <NUM> can be configured to use a two-line element set (TLE) (e.g., associated with the first and second sets of information <NUM>, <NUM>) to determine past and future points on the travel paths (e.g., orbital paths) of imaging platform <NUM> and/or solar source <NUM>. In some implementations, computing device(s) <NUM> can update the travel paths of imaging platform <NUM> and/or solar source <NUM> stored in its memory device(s) to match the TLEs periodically (e.g., once, twice, three times per day). In this way, computing device(s) <NUM> can accurately determine the locations of imaging platform <NUM> and/or solar source <NUM> (e.g., latitude, longitude, elevation, elevation angle, azimuth angle) throughout a day.

Computing device(s) <NUM> can be configured to determine one or more image capture condition(s) for capturing an image of target object <NUM>. Image capture condition(s) can include one or more factor(s) for imaging platform <NUM> to follow while imaging platform <NUM> obtains a plurality of image frames. For instance, the image capture condition(s) can include location information (e.g., coordinates) associated with region of interest <NUM> and/or target object <NUM>. Imaging platform <NUM> can use the location information to adjust its sensors such that it can obtain a plurality of image frames of region of interest <NUM>, some of which can include, at least a portion of, target object <NUM>. By way of example, imaging platform <NUM> can use the location information associated with an asphalt parking lot to adjust its sensors such that it can capture image frames of the parking lot, as well as, image frames that include, at least a portion of, a target automobile within the parking lot.

Additionally, and/or alternatively, image capture condition(s) can include one or more positional range(s) of imaging platform <NUM> relative to solar source <NUM>. Computing device(s) <NUM> can be configured to determine one or more positional range(s) of imaging platform <NUM> relative to solar source <NUM> based, at least in part, on the first and second sets of information <NUM>, <NUM>. The one or more positional range(s) can be indicative of one or more position(s) at which imaging platform <NUM> is to obtain one or more image frame(s) depicting at least a portion of target object <NUM>.

In some implementations, the positional range(s) can be associated with one or more position(s) of solar source <NUM> at which radiation (e.g., light) from solar source <NUM> causes a specular reflection with target object <NUM>, while a surrounding of target object <NUM> may not experience such a level of specular reflection. For instance, target object <NUM> can experience a specular reflection when imaging platform <NUM> is at certain elevation angles and/or certain azimuth angles relative to solar source <NUM>, due to the angle of incidence and angle of reflection of the radiation of solar source <NUM>. In this way, computing device(s) <NUM> can restrict image angles depending on the location of solar source <NUM>, to include glint or glare associated with target objects <NUM>.

<FIG> illustrates an example schematic <NUM> of the elevation angle of imaging platform <NUM> relative to target object <NUM> and solar source <NUM> according to example embodiments of the present disclosure. As shown, imaging platform <NUM> and solar source <NUM> can be oriented above region of interest <NUM> and/or target object <NUM>. Imaging platform <NUM> can be located at an elevation angle <NUM> relative to a horizontal plane <NUM> associated with region of interest <NUM> and/or target object <NUM>. Solar source <NUM> can be located at an elevation angle <NUM> relative to horizontal plane <NUM> associated with region of interest <NUM> and/or target object <NUM>.

Target object <NUM> can experience a specular reflection (while its surroundings may not) when imaging platform <NUM> is within a first positional range <NUM>. First range <NUM> can include one or more elevation angle(s) <NUM> of imaging platform <NUM> that are within a certain degree of the elevation angle <NUM> of solar source <NUM>. The elevation angle(s) <NUM> included in first range <NUM> can be associated with the angles of incidence and/or reflection of the radiation of solar source <NUM> that cause specular reflection with target object <NUM>. For instance, target object <NUM> can experience a specular reflection when elevation angle <NUM> of imaging platform <NUM> is substantially the same as elevation angle <NUM> of solar source <NUM>. In some implementations, first range <NUM> can include one or more elevation angle(s) of imaging platform <NUM> that are within +/- <NUM> degrees of elevation angle <NUM> of solar source <NUM>. By way of example, in the event that elevation angle <NUM> of solar source <NUM> is <NUM> degrees relative to horizontal plane <NUM>, the first range <NUM> can include the elevation angles <NUM> of imaging platform <NUM> from <NUM> to <NUM> degrees relative to horizontal plane <NUM>.

<FIG> illustrates an example schematic <NUM> of the azimuth angle of imaging platform <NUM> relative to target object <NUM> and solar source <NUM> according to example embodiments of the present disclosure. As shown, imaging platform <NUM> and solar source <NUM> can be oriented within a reference plane <NUM> that includes region of interest <NUM> and/or target object <NUM>. Imaging platform <NUM> can be located at an azimuth angle <NUM> relative to a reference vector <NUM> (e.g., within reference plane <NUM>) associated with region of interest <NUM> and/or target object <NUM>. Solar source <NUM> can be located at an azimuth angle <NUM> relative to reference vector <NUM> associated with region of interest <NUM> and/or target object <NUM>.

Target object <NUM> can experience a specular reflection when imaging platform <NUM> is within a second positional range <NUM>. Second range <NUM> can include one or more azimuth angle(s) <NUM> of imaging platform <NUM> that are within a certain degree of azimuth angle <NUM> of solar source <NUM>. The azimuth angle(s) <NUM> included in second range <NUM> can be associated with the angles of incidence and/or reflection of the radiation of solar source <NUM> that cause a specular reflection with target object <NUM> rather than at least one other portion of region of interest <NUM> (e.g., due to the lack of glossy, reflective surface of that portion). In some implementations, second range <NUM> can include one or more azimuth angle(s) <NUM> of imaging platform <NUM> that are within +/- <NUM> degrees to <NUM> degrees of azimuth angle <NUM> of solar source <NUM>. Said differently, the azimuth angle <NUM> of imaging platform <NUM> can be within +/- <NUM> degrees of <NUM> degrees of azimuth angle <NUM> of solar source <NUM>. By way of example, in the event that azimuth angle <NUM> of solar source <NUM> is <NUM> degrees relative to reference vector <NUM> (e.g., associated with compass North), second range <NUM> can include the azimuth angles <NUM> of imaging platform <NUM> from <NUM> to <NUM> degrees relative to reference vector <NUM>.

Returning to <FIG>, computing device(s) <NUM> can be configured to determine the first and second ranges <NUM>, <NUM> based, at least in part, on the first and second sets of information <NUM>, <NUM> associated with the location(s) of imaging platform <NUM> and solar source <NUM>. The one or more positional range(s) (indicated by the image capture condition(s)) can include first range <NUM> associated with elevation angle <NUM> of imaging platform <NUM> and/or second range <NUM> associated with azimuth angle <NUM> of imaging platform <NUM>.

Computing device(s) <NUM> can be configured to determine when imaging platform <NUM> will enter the first and second ranges <NUM>, <NUM>. For instance, computing device(s) <NUM> can determine a time range <NUM> in which imaging platform <NUM> is within the one or more positional range(s) (e.g., <NUM>, <NUM>) of imaging platform <NUM> relative to solar source <NUM>. Computing device(s) <NUM> can determine time range <NUM> based, at least in part, on first set of information <NUM>, second set of information <NUM>, first range <NUM>, and/or second range <NUM>. Time range <NUM> can include a first time (t<NUM>) that is indicative of when the position of imaging platform <NUM> will enter first range <NUM> associated with elevation angle <NUM> of imaging platform <NUM> and second range <NUM> associated with azimuth angle <NUM> of imaging platform <NUM>. Time range <NUM> can also include a second time (t<NUM>) that is indicative of when the position of imaging platform <NUM> will exit at least one of first range <NUM> associated with elevation angle <NUM> of imaging platform <NUM> or second range <NUM> associated with azimuth angle <NUM> of imaging platform <NUM>. Based, at least in part, on time range <NUM>, computing device(s) <NUM> can be configured to determine the imaging access for target object <NUM> and select precise collection times within that access, to optimize for imaging platform <NUM> and solar source <NUM> geometry. This can lead to the highest level of reflectance with target object <NUM> during image collection.

By way of example, target object <NUM> (e.g., a black automobile) can be located within region of interest <NUM> (e.g., an asphalt parking lot) during the hours of <NUM>:<NUM> a. PST to <NUM>:<NUM> a. At <NUM>:<NUM> a. PST, elevation angle <NUM> of solar source <NUM> can be <NUM> degrees and azimuth angle <NUM> of solar source <NUM> can be <NUM> degrees. Computing device(s) <NUM> can be configured to determine that at <NUM>:<NUM> a. PST (e.g., first time t<NUM>) elevation angle <NUM> of imaging device <NUM> can be <NUM> degrees and azimuth angle <NUM> of imaging platform <NUM> can be <NUM> degrees. Computing device(s) <NUM> can be configured to determine that at <NUM>:<NUM> a. PST (e.g., second time t<NUM>) elevation angle <NUM> of imaging device <NUM> can be <NUM> degrees and azimuth angle <NUM> of imaging platform <NUM> can be <NUM> degrees. Thus, time range <NUM> can include times from <NUM>:<NUM> a. PST (e.g., first time t<NUM>) to <NUM>:<NUM> a. PST (e.g., second time t<NUM>) during which target object <NUM> may experience a specular reflection and which imaging platform <NUM> can be directed to capture image frames of target object <NUM> and/or region of interest <NUM>.

Computing device(s) <NUM> can be configured to send a first set of data <NUM> indicative of one or more image capture condition(s) to imaging platform <NUM>, which can be configured to receive the first set of data <NUM>. Such data can be sent, for example, via one or more radio frequency transmission signal(s). The image capture condition(s) can be indicative of the one or more positional range(s) (e.g., <NUM>, <NUM>) of imaging platform <NUM> relative to solar source <NUM>. For example, the positional range(s) (e.g., <NUM>, <NUM>) of imaging platform <NUM> relative to solar source <NUM> can include first range <NUM> associated with elevation angle <NUM> of imaging platform <NUM> (e.g., substantially similar to an elevation angle of of solar source <NUM>, or within +/- <NUM> degrees of elevation angle <NUM> of solar source <NUM>) and second range <NUM> associated with azimuth angle <NUM> of imaging platform <NUM> (e.g., within <NUM> degrees to <NUM> degrees of azimuth angle <NUM> of solar source <NUM>).

Imaging platform <NUM> can be configured to determine whether the image capture condition(s) exist such that it can begin to collect image frames. For instance, imaging platform <NUM> can be configured to determine whether a position of imaging platform <NUM> is within the one or more positional range(s) (e.g., <NUM>, <NUM>), indicated by the image capture condition(s). In some implementations, imaging platform <NUM> can include a navigation system (e.g., a global positioning system) to determine its location. Using the navigation system, imaging platform <NUM> can determine whether its elevation angle <NUM> is within first range <NUM> (e.g., +/- <NUM> degrees relative to elevation angle <NUM> of solar source <NUM>) and/or whether its azimuth angle <NUM> is within second range <NUM> (e.g., +/- <NUM> to <NUM> degrees relative to azimuth angle <NUM> of solar source <NUM>). If so, imaging platform <NUM> can be located at a position at which target object <NUM> (e.g., a black automobile) can experience a specular reflection due to the radiation from solar source <NUM>.

In some implementations, imaging platform <NUM> can determine its position based on time. For instance, the first set of data <NUM> receive by imaging device <NUM> can be indicative of time range <NUM>, identifying when imaging platform <NUM> is within the one or more positional range(s) (e.g., <NUM>, <NUM>). Using a clock device, computing device(s) <NUM> of imaging platform <NUM> can determine when imaging platform <NUM> is within first range <NUM> (e.g., elevation angle range) and/or second range <NUM> (e.g., azimuth angle range) based, at least in part, on whether a time associated with imaging platform <NUM> (e.g., a current time) is within time range <NUM>.

In some implementations, computing device(s) <NUM> can be configured to determine whether the image capture condition(s) exist. For instance, computing device(s) <NUM> can be configured to determine whether imaging platform is oriented to capture image frame(s) including, at least a portion of, region of interest <NUM> and/or target object <NUM>. Computing device(s) <NUM> can determine whether a position of imaging platform <NUM> is within the one or more positional range(s) (e.g., <NUM>, <NUM>). Computing device(s) <NUM> can determine whether a time associated with imaging platform <NUM> is within time range <NUM>. Computing device(s) <NUM> can make such determinations, based, at least in part, on the first and second sets of information <NUM>, <NUM> and/or on one or more communications (e.g., radio frequency transmission signals) sent to and/or received from imaging platform <NUM>.

Computing device(s) <NUM> of imaging platform <NUM> can be configured to obtain a plurality of image frames. For instance, using the systems and methods described with reference to <FIG>, computing device(s) <NUM> can be configured to obtain a second set of data <NUM> that is indicative of a plurality of image frames based, at least in part, on the one or more positional range(s) (e.g., <NUM>, <NUM>). Each image frame can depict, at least a portion of, region of interest <NUM>. Moreover, one or more of the image frame(s) can depict, at least a portion of, target object <NUM> in region of interest <NUM>.

For instance, target object <NUM> can be a black automobile that is located within region of interest <NUM>, for example, a black asphalt parking lot. When imaging platform <NUM> is within the positional range(s) (e.g., <NUM>, <NUM>) relative to solar source <NUM> and/or time range <NUM>, imaging platform <NUM> can be configured to obtain a second set of data <NUM> indicative of one or more image frame(s). One or more of the image frame(s) can include, at least a portion of, target object <NUM> (e.g., the black automobile). In this way, the image frame(s) will be obtained when target object <NUM> experiences a specular reflection due to the orientation of solar source <NUM> (and/or imaging platform <NUM>). Moreover, the portion of target object <NUM> depicted in one or more of the image frame(s) may be associated with a specular reflection, while the other portions of region of interest <NUM> depicted in the image frame(s) may not experience such a level of reflectance. Imaging platform <NUM> can be configured to send, to computing device(s) <NUM> (e.g., that are remote from imaging platform <NUM>), a third set of data <NUM> that is indicative of at least the one or more image frame(s) that depict, at least a portion of, target object <NUM>.

In some implementations, computing device(s) <NUM> can be configured to command imaging platform <NUM> to capture one or more image frame(s). For instance, when computing device(s) <NUM> determine that imaging platform <NUM> is within first and second ranges <NUM>, <NUM> (e.g., such that the black automobile is experiencing a specular reflectance due to solar source <NUM>), computing device(s) <NUM> can be configured to send one or more command signal(s) to imaging platform <NUM> directing it to obtain second set of data <NUM> indicative of a plurality of image frames. Imaging platform <NUM> can be configured to receive the one or more command signal(s) and can obtain second set of data <NUM> indicative of a plurality of image frames. Each image frame can include, at least a portion of, region of interest <NUM>. One or more of the image frame(s) can depict, at least a portion of, target object <NUM>. The portion of target object <NUM> depicted in one or more of the image frame(s) may be associated with the specular reflectance, while one or more other portion(s) of region of interest <NUM> may not.

Computing device(s) <NUM> can be configured to receive the third set of data <NUM> and coordinate processing of the image frame(s). For example, computing device(s) <NUM> can be configured to send the third set of data <NUM> that is indicative of the one or more image frame(s) depicting (at least a portion of) target object <NUM> to another computing system for processing. For instance, processing techniques can include mosaicing the image frames together to reconstruct an image of an asphalt parking lot, including the black automobile, as further described herein.

Target object <NUM> can then be distinguished from its surroundings. For example, a threshold can be indicative of a level of brightness and/or reflectance expected to be associated with target object <NUM> when it experiences a specular reflection. An image processing computing system employing machine learning techniques and/or a user of the image processing computing system can examine the images of target object <NUM>, looking for portions with a level of brightness and/or reflectance that is above the threshold. By way of example, an image processing computing system can examine an image of the black automobile in the black asphalt parking lot. The image processing computing system can look for the glint or glare produced from the black automobile as it experiences a specular reflection (while its surroundings may not) based, at least in part, on the orientation of imaging platform <NUM> in the positional range(s) (e.g., <NUM>, <NUM>). If the portion of the image has a level of brightness and/or reflectance that is above the threshold, the image processing computing system (and/or its user) can distinguish a black automobile from the black asphalt parking lot in which it is located. This can help, for instance, to estimate a number of automobiles that are currently parked in a parking lot.

<FIG> depict example embodiments of imaging platform <NUM>, example embodiments of its components, and example embodiments of imaging capture and processing techniques. The embodiments shown and described with reference to <FIG> are intended as examples and are not intended to be limiting. Imaging platform <NUM> can include different types, numbers, orientations, combinations, etc. of components than those shown and described herein. Moreover, different imaging capture and processing techniques can be implemented in the systems, methods, and apparatuses of the present disclosure than those described herein. The systems, methods, and apparatuses of the present disclosure can be implemented in any imaging system.

<FIG> depicts an example imaging platform <NUM> according to example embodiments of the present disclosure. Imaging platform <NUM> can be configured to use one or more 2D staring sensors to acquire entire 2D frames taken as snapshots while imaging platform <NUM> travels along a track <NUM> over region of interest <NUM>. In some implementations, imaging platform <NUM> can be configured such that neighboring images contain overlapping measurements of region of interest <NUM>. For instance, the presence of overlapping regions in the output images allows for later image processing to register neighboring image frames and mosaic the images together to reconstruct an image of region of interest <NUM> and/or target object <NUM>.

In particular, imaging platform <NUM> can acquire an entire two-dimensional image frame <NUM> in a single snapshot. Staring sensors can be configured to capture images in rapid succession. For instance, an image can be captured sequentially through the capture or acquisition of many different image frames (e.g. image frames <NUM>, <NUM>), each of which can have some amount of overlap <NUM> with the image frames before and/or after it. One or more of the image frame(s) can include, at least a portion of, target object <NUM>. In some implementations, the imaging region of a staring sensor can be thought of as a two-dimensional surface area. Light can be collected and bundled into individual pixels, whereby the number of pixels relative to the surface area of the image region determines the resolution of the staring sensor. In various implementations, the staring sensor can comprise a complementary metal-oxide-semiconductor (CMOS) sensor or a charge coupled device (CCD) sensor. The staring sensor can include an array of photodiodes. In some implementations, the staring sensor includes an active-pixel sensor (APS) comprising an integrated circuit containing an array of pixel sensors. Each pixel sensor can include a photodiode and an active amplifier. For some overhead imaging implementations, the staring sensor (and/or other components of an overhead imaging platform) can be radiation hardened to make it more resistant to damage from ionizing radiation in space.

As indicated, imaging platform <NUM> can be configured such that neighboring image frames <NUM>, <NUM> contain overlapping measurements of region of interest <NUM> (e.g., the overlap <NUM>). The presence of overlapping regions in the output images allows for later image processing to register neighboring image frames and to combine the images together to reconstruct a more accurate image of region of interest <NUM>. In addition, by combining many separate similar image frames together, the final reconstructed image captured by a staring sensor can correct for deviations in the motion of imaging platform <NUM> from the expected direction of travel <NUM>, including deviations in speed and/or direction.

In some implementations, imaging platform <NUM> can further include a color wheel sensor, a color filter array (CFA), such as a Bayer filter, a panchromatic channel (e.g. panchromatic filter or panchromatic sensor), one or more spectral channels (e.g. spectral sensor or spectral filter), etc. For instance, imaging platform <NUM> can include an imaging sensor having a panchromatic block adjacent to a multispectral block. In some implementations, imaging platform <NUM> can include a one-dimensional line sensor, such as a TDI sensor. A line scan sensor can be a sensor having a single row of pixels for each color to be collected. The sensor is positioned in imaging platform <NUM> so as to be perpendicular to the track direction thus moving in a linear manner across a scene. Each row of pixels in an image is exposed in sequence as the sensor moves across the scene, thus creating a complete 2D image. When imaging platform <NUM> captures images with multispectral (e.g., multiple color) information, it can use an independent line scan sensor for each spectrum (e.g., color band) to be captured, wherein each line scan sensor is fitted with a different spectral filter (e.g., color filter).

<FIG> depicts an example filter configuration for a two-dimensional multispectral staring sensor <NUM> that includes spectral filter strips 505a, 505b, 505c, and 505d, according to example embodiments of the present disclosure. In particular, staring sensor <NUM> can include a block <NUM> of a plurality of spectral filter strips 505a-505d. In this example, spectral filter strips 505a-505d can be shaped in a long, narrow manner spanning the axis or surface area of the staring sensor <NUM>. Spectral filter strips <NUM> can be disposed relative to the surface of staring sensor <NUM> such that filter strips 505a-505d are disposed between the surface of staring sensor <NUM> and region of interest <NUM> to be captured in an image. As indicated above, region of interest <NUM> can include, for example, a portion of the surface of the earth that is to be imaged from imaging platform <NUM>. Region of interest <NUM> can include target object <NUM>. Light from region of interest <NUM> and/or target object <NUM> can pass through filter strips 505a-505d before being detected by photosensitive elements of staring sensor <NUM>. Filter strips 505a-505d can be formed over or on staring sensor <NUM> or can be attached or bonded to staring sensor <NUM>. For example, filter strips 505a-505d can be bonded to a ceramic carrier or substrate for staring sensor <NUM>.

The structure of staring sensor <NUM> can be described with reference to two perpendicular axes <NUM>, <NUM>, with the axis <NUM> in the expected direction of travel <NUM> of imaging platform <NUM>. For instance, filter strips 505a-505d can be oriented perpendicular to axis <NUM> in the direction of travel <NUM>. Each filter strip 505a-505d can have a longitudinal axis that is oriented perpendicular to the axis <NUM> in the direction of travel <NUM> of imaging platform <NUM>. Each filter strip 505a-505d can have a height in the direction <NUM>. In some implementations, the width of filter strips 505a-505d along the direction <NUM> (perpendicular to the direction of motion <NUM>) can be substantially the same as the length of staring sensor <NUM> in that direction, such that filter strips 505a-505d substantially cover the surface of staring sensor <NUM>.

In one example implementation, staring sensor <NUM> can include at least four spectral filter strips (e.g., red, green blue, infrared). Various other suitable numbers of filter strips can be used. Filter strips 505a-505d can be shaped roughly as rectangles (e.g., as shown in <FIG>) or as parallelograms, squares, polygons, or any other suitable shape. In various implementations, filter strips 505a-505d cover substantially the entire surface of staring sensor <NUM>.

Each filter strip 505a-505d can be configured to transmit light within a range of wavelengths. For example, a blue spectral filter strip can be configured to transmit wavelengths of light centered around the color blue (e.g., <NUM>-<NUM>). Wavelengths of light outside the range transmitted by a filter are blocked, so that light outside the transmitted range is not collected by the pixels of staring sensor <NUM> that are "below" the filter strip. The range of wavelengths transmitted by each filter strip 505a-505d can vary. The range of wavelengths transmitted by a particular filter strip 505a-505d may or may not overlap, at least partially, with the range of wavelengths transmitted by other filter strips, depending upon the implementation. In addition to red (R), green (G), blue (B), and infrared (IR) filters as illustrated, there are many other possible wavelength ranges that can be transmitted by a spectral filter, for example cyan, yellow, magenta, or orange. Infrared filters can include near, mid, or far infrared filters. In some implementations, ultraviolet filters can be used. In some implementations, the wavelength ranges (or bandwidths) for filter strips 505a-505d are selected to cover at least a portion of a desired spectral range, e.g., a visible spectral range, an infrared spectral range, an ultraviolet spectral range, or a combination of such spectral ranges. Additionally, the ordering of spectral filters (as well as placement in relation to a panchromatic sensor, if used) along the direction of relative motion <NUM> can be arbitrary, and as a consequence any order of filter strips 505a-505d can be used.

In some implementations, the height <NUM> of filter strips 505a-505d along their short edges hfilter is between one and four times a minimum filter height. In one implementation, the minimum filter height can correspond to the velocity of a point on the ground as seen by staring sensor <NUM> as it moves in the direction of travel <NUM>, divided by a frame rate at which staring sensor <NUM> (and/or the imaging electronics such as associated with computing device(s) <NUM>) captures image frames. In some implementations, computing device(s) <NUM> can be integrated with sensor <NUM>, which can simplify packaging and use with an imaging system. Computing device(s) <NUM> can be used or integrated with any of the embodiments of sensor <NUM> described herein to electronically control image or video capture by sensor <NUM>.

Although <FIG> illustrates staring sensor <NUM> having filter strips 505a-505d that each have the same height <NUM>, this is for purposes of illustration and is not intended to be limiting. In other implementations, the heights of some or all of the filter strips can be different from each other.

In addition to a two dimensional staring sensor, staring sensor <NUM> optionally can also include a panchromatic block for capturing panchromatic image data in addition to the multispectral image data captured via filter strips 505a-505d of staring sensor <NUM>. The panchromatic block can be sensitive to a wide bandwidth of light as compared to the bandwidth of light transmitted by one or more of filter strips 505a-505d. For example, the panchromatic block can have a bandwidth that substantially covers, at least, a substantial portion of the combined bandwidths of filter strips 505a-505d. In various implementations, the bandwidth of the panchromatic block can be greater than about two, greater than about three, greater than about four, or greater than about five times the bandwidth of a filter strip 505a-505d.

<FIG> depicts an example sensor including a two dimensional staring sensor <NUM> with spectral filter strips 605a-605d and a panchromatic block 605efgh, according to example embodiments of the present disclosure. As shown, panchromatic block 605efgh is the same width (e.g., perpendicular to direction of relative motion <NUM>) as each individual spectral filter strip (e.g., infrared 605a, blue 605b, green 605c, red 605d), but is four times the height <NUM> (e.g., parallel to the direction of motion <NUM>) of any of the individual spectral filter strips 605a-605d. The height of panchromatic block 605efgh relative to the height of filter strips 605a-605d can vary in various implementations. For instance, the width and height of panchromatic block 605efgh can be determined based on the direction of relative motion <NUM> of imaging platform <NUM>, where height is parallel to the direction of relative motion <NUM>, and width is perpendicular to the direction of relative motion <NUM>.

<FIG> depicts gaps <NUM> between filter strips 605a-605d and panchromatic strips 605efgh. It will be appreciated that such gaps can be any suitable size. It will further be appreciated that, in some implementations, such gaps may not be included at all. The total height <NUM> of this implementation of sensor <NUM> can correspond to the sum of the heights of the panchromatic block 605efgh, filter strips 605a-605d, and gaps <NUM> (if included).

Although panchromatic block 605efgh includes a single panchromatic filter, it will be appreciated that, in some implementations, panchromatic block 605efgh can include a plurality of panchromatic strips having various suitable proportions. In some implementations, all portions of the spectral sensor(s) and panchromatic sensor(s) imaging areas can have the same pixel size, pixel shape, pixel grid or array placement, and/or pixel density. However, in some cases individual portions of the sensors can have differing pixel sizes, shapes, grid or array placements, and/or densities.

As indicated above, in some implementations, an imaging sensor can include a single (e.g., monolithic) two-dimensional staring sensor, where different portions of the sensor capture different data based on the spectral filters and/or panchromatic filters. In other implementations, multiple staring sensors can be used. For example, the panchromatic strip(s) can be disposed over a first photosensor, and the spectral filter strip(s) can be disposed over a second photosensor. In other implementations, a different photosensor can be used for each spectral or panchromatic strip. The different photosensors can, in some cases, have different pixel arrangements. In other implementations, the staring sensor can be replaced by other types of spectral sensors such as line scanners (including TDI), color wheels, and CFA sensors.

<FIG> depicts an example imaging sequence <NUM> according to example embodiments of the present disclosure. As described herein, imaging platform <NUM> can move along the track direction, and thus can move relative to region of interest <NUM> (and/or target object <NUM>) to be observed. Imaging platform <NUM> can be configured to capture image frames successively at a specified frame rate (frames per second or fps) and/or integration time. As imaging platform <NUM> moves and captures image frames, one or more point in the region of interest <NUM> and/or on the target object <NUM> can be captured at least once by each spectral filter (and/or panchromatic filter).

As depicted in <FIG>, images 701a-<NUM> represent a sequence of eight successive image frames captured by a sensor scanning over region of interest <NUM>. For instance, image sequence <NUM> can be captured using a sensor corresponding to staring sensor <NUM>. In this example, a panchromatic channel is not used. As shown, the sensor captures eight image frames, corresponding to capture times (CT) <NUM>-<NUM>. The individual sensor captures are denoted by a capital letter for the filter strip (from A to D) followed by a number for the capture time. For example, sensor capture D3 in image CT3 represents the capture by the spectral strip D, 505d, in the third capture time. One or more of the image frame(s) can include at least a portion of target object <NUM>.

In some implementations, after collection, all of the images can be co-registered. Once co-registration is completed, a separate reconstructed spectral image can be created for each color (spectral) band. The reconstructed color band images can be combined to create a multispectral image. In cases where the staring sensor includes a panchromatic sensor in addition to the multispectral sensor, captured panchromatic image data can be used to enhance the quality of a multispectral image.

<FIG> depicts a flow diagram of an example method <NUM> of enhancing object feature visibility for overhead imaging according to example embodiments of the present disclosure. Method <NUM> can be implemented by one or more computing device(s), such as computing device(s) <NUM>, <NUM>. In addition, <FIG> depicts steps performed in a particular order for purposes of illustration and discussion. The steps of any of the methods discussed herein can be adapted, rearranged, expanded, omitted, or modified in various ways without deviating from the scope of the present disclosure.

At (<NUM>), method <NUM> can include obtaining information indicative of the location of imaging platform <NUM>. For instance, computing device(s) <NUM> can be configured to obtain a first set of information <NUM> associated with one or more location(s) of imaging platform <NUM>. At (<NUM>), method <NUM> can include obtaining information indicative of the location of solar source <NUM>. For instance, computing device(s) <NUM> can be configured to obtain a second set of information <NUM> associated with one or more location(s) of solar source <NUM>. As described herein, the first and second sets of information <NUM>, <NUM> can include data associated with global position systems, speed, orbit, etc. Computing device(s) <NUM> can be configured to obtain the first and/or second sets of information <NUM>, <NUM> from one or more remote database(s) <NUM>.

At (<NUM>), method <NUM> can include determining one or more image capture condition(s). The image capture condition(s) can include, for instance, location information associated with region of interest <NUM> and/or target object <NUM>. Additionally, and/or alternatively, computing device(s) <NUM> can determine one or more positional range(s) of imaging platform <NUM> relative to solar source <NUM> based, at least in part, on the first and second sets of information <NUM>, <NUM>. The positional range(s) can be indicative of one or more position(s) at which imaging platform <NUM> is to obtain data indicative of one or more image frame(s) depicting, at least a portion of, target object <NUM>. Moreover, the one or more positional range(s) (e.g., <NUM>, <NUM>) can be associated with one or more positions of the solar source <NUM> at which radiation from solar source <NUM> causes a higher level of reflectance with target object <NUM>, than with a surrounding of target object <NUM> by creating a specular reflection.

For example, the positional range(s) can include first range <NUM> associated with elevation angle <NUM> of imaging platform <NUM> and/or second range <NUM> associated with azimuth angle <NUM> of imaging platform <NUM>. In some implementations, first range <NUM> can include one or more elevation angle(s) <NUM> of imaging platform <NUM> that are substantially similar to elevation angle <NUM> of solar source <NUM>. First range <NUM> can include one or more elevation angle(s) <NUM> of imaging platform <NUM> that are within +/- <NUM> degrees of elevation angle <NUM> of solar source <NUM> and second range <NUM> can include one or more azimuth angle(s) <NUM> of imaging platform <NUM> that are within <NUM> degrees to <NUM> degrees of azimuth angle <NUM> of solar source <NUM>, as described herein with reference to <FIG> and <FIG>. First and second range(s) <NUM>, <NUM> can be associated with one or more position(s) of imaging platform <NUM> and/or solar source <NUM> at which radiation (e.g., light) from solar source <NUM> causes a higher level of reflectance with target object <NUM> than its surroundings (and/or one or more portions of region of interest <NUM>) by creating a specular reflection. In some implementations, the computing device(s) <NUM> can determine time range <NUM> in which imaging platform <NUM> is within the one or more positional range(s) (e.g., <NUM>, <NUM>) of imaging platform <NUM> relative to solar source <NUM>, as described above.

At (<NUM>), method <NUM> can include sending data indicative of the image capture condition(s). Computing device(s) <NUM> can send, to imaging platform <NUM>, a first set of data <NUM> that is indicative of, for example, the one or more positional range(s) (e.g., <NUM>, <NUM>) such that imaging platform <NUM> can obtain a second set of data <NUM> indicative of a plurality of image frames when imaging platform <NUM> is within the positional range(s) (e.g., <NUM>, <NUM>). The first set of data <NUM> can also, and/or alternatively, be indicative of the location information associated with region of interest <NUM> and/or target object <NUM> and/or time range <NUM>.

At (<NUM>), method <NUM> can include receiving the data indicative of the image capture condition(s). For instance, computing device(s) <NUM> of imaging platform <NUM> can receive the first set of data <NUM> indicative of the positional range(s) (e.g., <NUM>, <NUM>), the location information associated with region of interest <NUM> and/or target object <NUM>, and/or time range <NUM>. By way of example, in the event that imaging platform <NUM> is included on a satellite orbiting the earth, computing device(s) <NUM> can receive the first set of data from one or more ground station(s) (e.g., associated with computing device(s) <NUM>) distributed globally.

At (<NUM>), method <NUM> can include determining whether a position of imaging platform <NUM> is within the one or more positional range(s) (e.g., <NUM>, <NUM>). For instance, computing device(s) <NUM> of imaging platform <NUM> can determine whether a position of imaging platform <NUM> is within first range <NUM> associated with elevation angle <NUM> of imaging platform <NUM> and second range <NUM> associated with azimuth angle <NUM> of imaging platform <NUM>. Additionally, and/or alternatively, imaging platform <NUM> can determine it is within the positional range(s) (e.g., <NUM>, <NUM>) by using a clock device, as described above.

By way of example, elevation angle <NUM> of solar source <NUM> can be <NUM> degrees relative to horizontal plane <NUM>, and first range <NUM> can include the elevation angles <NUM> from <NUM> to <NUM> degrees relative to horizontal plane <NUM>. Azimuth angle <NUM> of solar source <NUM> can be <NUM> degrees relative to reference vector <NUM>, and second range <NUM> can include the azimuth angles <NUM> from <NUM> to <NUM> degrees relative to reference vector <NUM>. If elevation angle <NUM> is <NUM> degrees relative to horizontal plane <NUM>, and azimuth angle <NUM> is <NUM> degrees relative to reference vector <NUM>, then imaging platform <NUM> can determine that it is within the one or more positional range(s) (e.g., <NUM>, <NUM>).

Additionally, and/or alternatively, method <NUM> can include determining, by computing system <NUM>, whether a position of imaging platform <NUM> is within the one or more positional range(s) (e.g., <NUM>, <NUM>). For instance, computing device(s) <NUM> can determine whether a position of imaging platform <NUM> is within the one or more positional ranges (<NUM>, <NUM>). For example, computing device(s) <NUM> can determine whether imaging platform is oriented to capture image frame(s) of region of interest <NUM> and/or target object <NUM> based, at least in part, on the location information associated with region of interest <NUM> and/or target object <NUM>. Computing device(s) <NUM> can determine whether a position of imaging platform <NUM> is within the one or more positional range(s) (e.g., <NUM>, <NUM>). Computing device(s) <NUM> can determine whether a time associated with imaging platform <NUM> is within time range <NUM>.

At (<NUM>), method <NUM> can include obtaining data indicative of a plurality of image frames. For instance, computing device(s) <NUM> of imaging platform <NUM> can obtain a second set of data <NUM> that is indicative of a plurality of image frames, as described above. One or more of the image frames can be captured based, at least in part, on the one or more positional range(s) (e.g., <NUM>, <NUM>). For example, imaging platform <NUM> can use the location information associated with region of interest <NUM> (e.g., a black asphalt parking lot) and/or target object <NUM> (e.g., a black automobile) to orient its sensors in a manner such that it can capture image frames including, at least a portion of, region of interest <NUM> and/or target object <NUM>. When imaging platform <NUM> determines that it is within the first and second ranges <NUM>, <NUM> (e.g., such that the black automobile is experiencing a specular reflection due to solar source <NUM>), imaging platform <NUM> can obtain second set of data <NUM> indicative of a plurality of image frames. Each image frame can include, at least a portion of, region of interest <NUM> (e.g., the black asphalt parking lot). One or more of the image frames can depict, at least a portion of, target object <NUM> (e.g., a black automobile). The portion of the target object <NUM> depicted in one or more of the image frame(s) may be associated with the specular reflection, while other portions of the region of interest may not.

Additionally, and/or alternatively, method <NUM> can include sending, to imaging platform <NUM>, one or more command signal(s) to obtain second set of data <NUM> indicative of the one or more image frame(s). For instance, computing device(s) <NUM> can send, to imaging platform <NUM>, one or more command signal(s) to obtain second set of data <NUM> indicative of the one or more image frame(s) when imaging platform <NUM> is within the one or more positional ranges (e.g., <NUM>, <NUM>). For example, computing device(s) <NUM> can determine that imaging platform <NUM> is within the first and second ranges <NUM>, <NUM> (e.g., such that the black automobile is experiencing a specular reflection due to solar source <NUM>) and computing device(s) <NUM> can send one or more command signal(s) to imaging platform <NUM> to obtain second set of data <NUM> indicative of one or more image frame(s).

Imaging platform <NUM> can receive the one or more command signal(s) and can obtain second set of data <NUM> indicative of one or more image frame(s). One or more of the image frame(s) can depict, at least a portion of, target object <NUM>. The portion of target object <NUM> depicted in one or more of the image frame(s) may be associated with a specular reflection (while its surroundings and/or one or more other portion(s) of region of interest <NUM> may not).

At (<NUM>), method <NUM> can include sending data indicative of one of more image frames. For instance, computing device(s) <NUM> of imaging platform <NUM> can send a third set of data <NUM> that is indicative of one or more image frame(s) that depict, at least a portion of, target object <NUM>. In some implementations, computing device(s) <NUM> of imaging platform <NUM> can send third set of data <NUM> to computing device(s) <NUM> via one or more radio frequency transmission signals.

At (<NUM>), method <NUM> can include receiving data indicative of one or more image frame(s). For instance, computing device(s) <NUM> of computing system <NUM> can receive third set of data <NUM> indicative of one or more image frame(s) that depict, at least a portion of, target object <NUM>. As described above, the one or more image frame(s) can be captured based, at least in part, on the one or more positional range(s) (e.g., <NUM>, <NUM>).

At (<NUM>), method <NUM> can include coordinating the processing of one or more image frame(s). For instance, computing device(s) <NUM> can coordinate the processing of one or more image frame(s) that depict, at least a portion of, region of interest <NUM> and/or target object <NUM>. As described herein, the one or more image frames can be reconstructed to create an image that includes, at least a portion of, target object <NUM>. The image can be processed to identify target object <NUM> based, at least in part, on the specular reflection (e.g., glint) associated with target object <NUM>.

In one example, target object <NUM> can be a black automobile included in region of interest <NUM>, for example, a black asphalt parking lot. The processing techniques can include examining an image of the black automobile in the black asphalt parking lot to find a glint or glare produced from the black automobile as it experiences a specular reflection. If the portion of the image has a level of brightness and/or reflectance that is above a threshold (as described herein), the black automobile can be distinguished from the black asphalt parking lot in which it is located.

<FIG> depicts an example computing system <NUM> that can be used to implement the methods and systems according to example aspects of the present disclosure. The system <NUM> can include computing system <NUM> and imaging platform <NUM>, which can communicate with one another using signals <NUM> (e.g., radio frequency transmissions). The signals <NUM> can include, for instance, one or more command signals and/or one or more sets of data, as described herein. The system <NUM> can be implemented using a client-server architecture and/or other suitable architectures.

Computing system <NUM> can be associated with a control system for providing control commands to imaging platform <NUM>. Computing system <NUM> can include one or more computing device(s) <NUM>. Computing device(s) <NUM> can include one or more processor(s) <NUM> and one or more memory device(s) <NUM>. Computing device(s) <NUM> can also include a communication interface <NUM> used to communicate with imaging platform <NUM>. Communication interface <NUM> can include any suitable components for communicating with imaging platform <NUM>, including for example, transmitters, receivers, ports, controllers, antennas, or other suitable components.

Processor(s) <NUM> can include any suitable processing device, such as a microprocessor, microcontroller, integrated circuit, logic device, or other suitable processing device. Memory device(s) <NUM> can include one or more computer-readable media, including, but not limited to, non-transitory computer-readable media, RAM, ROM, hard drives, flash drives, or other memory devices. Memory device(s) <NUM> can store information accessible by processor(s) <NUM>, including computer-readable instructions <NUM> that can be executed by processor(s) <NUM>. Instructions <NUM> can be any set of instructions that when executed by processor(s) <NUM>, cause one or more processor(s) <NUM> to perform operations. For instance, execution of instructions <NUM> can cause processor(s) <NUM> to perform any of the operations and/or functions for which computing device(s) <NUM> are configured. In some implementations, execution of instructions <NUM> can cause processor(s) <NUM> to perform, at least a portion of, method <NUM> of enhancing object feature visibility for overhead imaging according to example embodiments of the present disclosure.

As shown in <FIG>, memory device(s) <NUM> can also store data <NUM> that can be retrieved, manipulated, created, or stored by processor(s) <NUM>. Data <NUM> can include, for instance, information associated with one or more location(s) of imaging platform <NUM> and/or solar source <NUM>, data indicative of image capture condition(s), data indicative of one or more positional range(s) (e.g., <NUM>, <NUM>), data indicative of time range <NUM>, the location information associated with region of interest <NUM> and/or target object <NUM>, data indicative of one or more image frame(s), and/or any other data and/or information described herein. Data <NUM> can be stored in one or more database(s). The one or more database(s) can be connected to computing device(s) <NUM> by a high bandwidth LAN or WAN, or can also be connected to computing device(s) <NUM> through various other suitable networks. The one or more databases can be split up so that they are located in multiple locales.

Computing system <NUM> can exchange data with imaging platform <NUM> using signals <NUM>. Although one imaging platform <NUM> is illustrated in <FIG>, any number of imaging platforms can be configured to communicate with the computing system <NUM>. In some implementations, imaging platform <NUM> can be associated with any suitable type of satellite system, including satellites, mini-satellites, micro-satellites, nano-satellites, etc. In some implementations, imaging platform <NUM> can be associated with an aircraft or other imaging platform such as a helicopter, an unmanned aerial vehicle, a drone, a balloon, or other suitable device.

Imaging platform <NUM> can include computing device(s) <NUM>, which can include one or more processor(s) <NUM> and one or more memory device(s) <NUM>. Processor(s) <NUM> can include one or more central processing units (CPUs). Memory device(s) <NUM> can include one or more computer-readable media and can store information accessible by processor(s) <NUM>, including instructions <NUM> that can be executed by processor(s) <NUM>. For instance, memory device(s) <NUM> can store instructions <NUM> for implementing an image collector and a data transmitter configured to capture a plurality of image frames and to transmit the plurality of image frames to a remote computing device (e.g., computing system <NUM>). In some implementations, execution of instructions <NUM> can cause processor(s) <NUM> to perform any of the operations and/or functions for which imaging platform <NUM> is configured. In some implementations, execution of instructions <NUM> can cause processor(s) <NUM> to perform, at least a portion of, method <NUM> of enhancing object feature visibility for overhead imaging.

Memory device(s) <NUM> can also store data <NUM> that can be retrieved, manipulated, created, or stored by processor(s) <NUM>. Data <NUM> can include, for instance, information associated with one or more location(s) of imaging platform <NUM> and/or solar source <NUM>, data indicative of image capture condition(s), data indicative of one or more positional range(s) (e.g., <NUM>, <NUM>), data indicative of time range <NUM>, location information associated with region of interest <NUM> and/or target object <NUM>, data indicative of one or more image frame(s), and/or any other data and/or information described herein. Data <NUM> can be stored in one or more database(s). The one or more database(s) can be connected to computing device(s) <NUM> by a high bandwidth LAN or WAN, or can also be connected to computing device(s) <NUM> through various other suitable networks. The one or more database(s) can be split up so that they are located in multiple locales.

Imaging platform <NUM> can also include a communication interface <NUM> used to communicate with one or more remote computing device(s) (e.g., computing system <NUM>, remote databases <NUM>) using signals <NUM>. Communication interface <NUM> can include any suitable components for interfacing with one or more remote computing device(s), including for example, transmitters, receivers, ports, controllers, antennas, or other suitable components.

In some implementations, one or more aspect(s) of communication among imaging platform <NUM>, computing system <NUM>, and/or remote databases(s) <NUM> can involve communication through a network. In such implementations, the network can be any type of communications network, such as a local area network (e.g. intranet), wide area network (e.g. Internet), cellular network, or some combination thereof. The network can also include a direct connection, for instance, between one or more of imaging platform <NUM>, computing system <NUM>, and/or remote databases <NUM>. In general, communication through the network can be carried via a network interface using any type of wired and/or wireless connection, using a variety of communication protocols (e.g. TCP/IP, HTTP, SMTP, FTP), encodings or formats (e.g. HTML, XML), and/or protection schemes (e.g. VPN, secure HTTP, SSL).

For instance, server processes discussed herein can be implemented using a single server or multiple servers working in combination.

Furthermore, computing tasks discussed herein as being performed at a server can instead be performed at a user device. Likewise, computing tasks discussed herein as being performed at the user device can instead be performed at the server.

Claim 1:
A computing system (<NUM>) for enhancing object feature visibility for overhead imaging, comprising:
one or more processors (<NUM>); and
one or more memory devices (<NUM>), the one or more memory devices storing computer-readable instructions (<NUM>) that when executed by the one or more processors cause the one or more processors to perform operations, the operations comprising:
obtaining a first set of information (<NUM>) associated with one or more locations of an imaging platform (<NUM>);
obtaining a second set of information (<NUM>) associated with one or more locations of a solar source (<NUM>);
determining, based at least in part on the first and second sets of information, one or more image capture conditions indicative of one or more constraints of the imaging platform to follow when the imaging platform obtains one or more image frames, wherein the image capture conditions are indicative of one or more positional ranges (<NUM>, <NUM>) of the imaging platform relative to the solar source, wherein the one or more positional ranges of the imaging platform relative to the solar source are associated with one or more positions of the solar source at which radiation from the solar source causes a higher level of reflectance with a target object (<NUM>) than with a surrounding of the target object by creating a specular reflection, wherein the one or more positional ranges are indicative of one or more positions at which the imaging platform is to obtain data indicative of one or more image frames depicting at least a portion of the target object; and
sending, to the imaging platform, a first set of data that is indicative of the one or more positional ranges to cause the imaging platform to obtain a second set of data (<NUM>) indicative of the one or more image frames depicting at least a portion of the target object when the imaging platform is within the one or more positional ranges.