System and method of obtaining images for determining attitude
Patent Information
- Application Number
- ES2021218384T
- Authority / Receiving Office
- ES · ES
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-12-30
- Publication Date
- 2026-09-15
- Estimated Expiration
- 2041-12-30
Smart Images

Figure 00000021_0000 
Figure 00000021_0001 
Figure 00000022_0000
Abstract
Description
System and method of obtaining images for determining attitude Background Determining the attitude or orientation of an artificial satellite or spacecraft is well known to be vital for carrying out its missions. Among the variety of instruments and devices currently used for attitude determination, star trackers are considered the most accurate reference for pointing, as they use the magnitude of fixed stars to identify them and then calculate the relative position of surrounding stars. To provide a reliable and accurate attitude determination, star trackers must cope with various sources of error, including those originating from the electro-optical components of the star-tracking system, the degree of contamination of the frames by stray light sources, and the star identification process, which includes star detection, matching, and identification using sensors with a low signal-to-noise ratio. This need becomes critical when designing "low-cost" satellites, which requires more compact and lightweight instruments, as well as optimized power consumption. EP 3499452 A1 discloses a fast tracking window image processing system with a star sensor, comprising a CPU and an FPGA. The FPGA includes a tracking window control memory, a tracking data collection module, a tracking window data memory, a pixel address memory for the first pixel cluster, and a pixel cluster processing module. EP 3499452 A1 states that, in the technical field of star sensors, it proposes a tracking window image processing method that extracts the centroid of a pixel cluster using the initial position of a navigation star as a reference point.The FPGA is responsible for collecting the tracking window data, estimating the background of the pixel cluster, and calculating the characteristic vector of the star's centroid, based on which the CPU can efficiently calculate the star's centroid; the gray values of all the pixels in a pixel cluster are used to evaluate the background of that pixel cluster, i.e., the average gray value of all the pixels in the pixel cluster is calculated; the disclosure fully leverages the advantages of FPGA parallel processing, which can process several pixel clusters and extract the star centroids from all pixel clusters at the same time. US patent 10657371 B1 discloses a miniaturized astrometric alignment sensor capable of detecting stellar objects and targets from which to track both stars and objects. The sensor can search for one or more bright objects in an image captured by a spacecraft's camera and determine whether those objects are genuine stars or secondary elements. The sensor can also catalog the entries of the identified stars once three or more bright objects have been determined to be genuine stars, and display the cataloged entries of the identified stars, where the cataloged entries comprise the position and velocity of the spacecraft relative to the identified stars and to a reference frame of the sensor body. US patent 2007 / 0038374 A1 discloses an automatic astronomical navigation system that enables day and night navigation by observing K-band or H-band infrared light from multiple stars. In a first set of preferred embodiments, three relatively large-aperture telescopes are rigidly mounted on a movable platform, such as a ship or aircraft, so that each telescope points toward a substantially different region of the sky. In a second set of preferred embodiments, one or more smaller-diameter telescopes are articulatedly mounted on a movable platform, such as a ship, aircraft, or missile, so that the telescope or telescopes can be rotated to point toward specific regions of the sky. The telescope optics focus (onto the pixel array of a sensor) the H-band or K-band light from one or more stars located in the field of view of each telescope.Each system also includes an inclinometer, a precise timing device, and a computer processor that accesses cataloged infrared star charts. The processor in each system is programmed with special algorithms to use image data from the infrared sensors, tilt information from the inclinometer, timing information from the timing device, and information from the cataloged star charts to determine the platform's position. The positional directions of two stars are needed to orient the platform relative to the celestial sphere. Ideally, the computer should also be programmed to use this celestial body position information to calculate latitude and longitude, which can be displayed on a screen, such as a monitor, or used by a guidance control system. An article by Zhang Yong et al., titled "Accurate and Robust Synchronous Extraction Algorithm for Star Centroid and Nearby Celestial Body Edge," discloses a high-precision synchronous extraction algorithm for the centroid of stars and the edges of nearby celestial bodies. This algorithm is designed for a miniaturized, stand-alone optical navigation sensor that combines the functions of a star tracker and a navigation camera. The image is processed using an annular filter template to remove background interference and enhance contrast between the object and the background. The second-order directional derivative and the area-specific feature method are used to extract and approximately distinguish the features (the star's centroid and the edge of the nearby celestial body).In the local area where the reference points are located, the 1D energy deviation effect is proposed to extract the characteristics of the two different light intensity distribution models. A paper by Michael J. Lichter, titled "Star tracker accuracy improvement and optimization for attitude measurement in three-axis," discloses a high-precision attitude measurement system that eliminates the need for the receiver to emit a beacon signal. This allows the spacecraft to send a laser communication signal to a ground station without revealing its location. The research presented focuses on novel detection and estimation methods aimed at improving the accuracy of star location in a focal plane detector (FPD), as well as understanding the effects of changes in optical design parameters and aberrations, including defocusing, on the navigation solution itself. This understanding can lead to optimization of the attitude solution based on these changes in optical parameters.The methodology considered includes the development of a model of a current star-tracking system. Using this model, several algorithms, including a multiple hypothesis test (MHT), have been implemented to detect and estimate the position of stars in the free-floating disk (FPD). It will be shown that by using the MHT for detection and estimation, greater accuracy in estimating each star can be achieved using more traditional detection and estimation algorithms. The method then uses the model to generate statistics from the star tracker and the attitude estimation results to understand the accuracy, or variance, of the system's attitude solution. This solution is repeated for a defocus aberration interval, and a lower bound on the variance of the attitude solution is shown.A Cramer-Rao lower bound solution for the star-tracking system is derived, and the results are compared with the Monte Carlo analysis of the model, demonstrating perfect agreement. This approach uses a stellar image not as a Gaussian point in the focal plane, as in previous work, but as an image that includes the effects of optical system aberrations, as well as the effects of undersampling and noise from the photonic imaging device (FPD). The analysis includes a study of improving the accuracy of a star tracker by combining the effects of focusing error and undersampling, which might contradict conventional ideas and approaches. Summary An image captured by an image sensor installed on a vehicle can be used to determine the vehicle's orientation with respect to a fixed or generally known reference frame, independent of the observer's orientation. The fixed or commonly known reference frame is usually called the "inertial reference frame" (e.g., the Earth-centered inertial system [ECI]), while the vehicle's reference frame is usually called the "vehicle reference frame."To determine a spacecraft's attitude, star trackers (a type of imaging system installed on spacecraft) typically capture an image of stars, measure their apparent position in the camera's field of view, and identify the stars so their position can be compared to their known absolute position, as listed in a star catalog and expressed in the inertial frame of reference. Several methods exist for locating stars in an image captured by a star tracker aboard a spacecraft or satellite. If the images have a good signal-to-noise ratio (SNR), a common method involves evaluating the intensity of each pixel and then establishing a threshold. If the intensity level exceeds the threshold, the bright pixels are classified as star candidates; if the intensity level is below the threshold, the pixels are classified as noise.Subsequently, candidate stars are identified as such by consulting a star database to determine which of the detected candidates are likely stars and which are not. However, in "low-cost" satellites, which are typically equipped with small, lightweight, and readily available components, the quality of the images captured by star trackers can be low. This often leads to a decrease in the signal-to-noise ratio and limits or reduces the number of stars detected. In images with a low signal-to-noise ratio, the use of the aforementioned thresholding technique can inevitably reduce the accuracy and reliability of star detection, as very few bright pixels (or even none) may have a brightness or intensity level exceeding the established threshold.Similarly, in situations where stray light reflections are projected into the field of view, the thresholding method typically fails. Considerable advantages can be gained by equipping satellites with low-cost star trackers capable of filtering images based at least in part on statistical techniques. This can provide robust and reliable attitude determination despite the satellite's limited resources, as enabled by the systems and methods disclosed herein. This disclosure describes an imaging system for attitude determination according to claim 1. This disclosure also describes a method for attitude determination according to claim 12. Other features and advantages, as well as the structure and operation of various embodiments, are described in more detail below, with reference to the accompanying drawings. That is to say, the disclosure of the systems, methods, and devices described herein is not limited to the specific embodiments described herein. The embodiments described herein are presented for illustrative purposes only. Persons skilled in the relevant art(s) may appreciate further embodiments based on the information contained herein. Brief description of the drawings The detailed description is provided with reference to the accompanying figures. In the figures, the leftmost digit(s) of a reference number identify the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical elements. FIG. 1 shows an image captured by a star tracker on board a satellite that has bright spots, stray light sources, and phenomena. FIG. 2: Block diagram of an example of an imaging system for determining the attitude on board a mobile platform, according to embodiments of the present disclosure. FIG. 3 is a flowchart showing some steps in an example process for determining the attitude of a spacecraft using star tracker data, according to realizations in this disclosure. FIG.4 is a flowchart showing some steps of an example process for detecting one or more centroid candidates, according to realizations in this disclosure. FIG. 5 is a flowchart showing some steps in an example process for filtering frames using a hypothesis test to detect centroid candidates, according to realizations in this disclosure. FIG. 6 illustrates an example of a window and the hypotheses for detecting centroid candidates, according to realizations in this disclosure. FIG. 7 is a flowchart showing some steps in an example process for selecting subregions of an image to calculate the hypothesis test, according to realizations in this disclosure. Figure 8 is a block diagram illustrating an example process for determining attitude indications based on the estimation of angular velocities, in accordance with embodiments of this disclosure. Detailed description of the embodiments This disclosure describes an imaging system for attitude determination according to claim 1. The systems, methods, and devices described herein thus enable attitude determination by star detection. This involves capturing an image and applying a filter to that image, based at least in part on statistical techniques. The filtering stage allows for the detection of centroid candidates. This statistical filtering step can eliminate unwanted and / or interfering elements from the image, resulting in a cleaner, filtered image upon which more accurate centroid candidate detection can be performed, even when the captured images have a relatively low signal-to-noise ratio. To filter at least one image based at least in part on statistical techniques, as described herein, one or more processors are configured to filter some or all of the pixels from the plurality of pixels in the at least one image based at least in part on a hypothesis test; wherein the hypothesis test comprises calculating statistical values in a window to test one or more hypotheses to determine centroid candidates, the window having a size of one or more pixels. The systems, methods, and devices described in this document thus allow the calculation of statistical values to test one or more hypotheses to determine candidate centroid(s) in a window of the image, and not necessarily in the entire image. According to implementations, one or more processors are configured to move the window over at least one image to calculate statistical values in all pixels of at least one image or in one or more selected subregions of at least one image. According to embodiments, the one or more processors are configured to shift the window over at least one image from a first position to a second position, pixel by pixel, such that the relative displacement from the first position to the second position is the size of one pixel or a multiple thereof, and that the pixels of the window in the first position overlap the pixels of the window in the second position by at least one pixel. By sliding the window over at least one image, the pixel or group of pixels covered by the window will change position as it moves across the image(s). This could allow statistical values to be calculated for different window positions—not just once for the entire image, but independently for each window position in at least one of the images. This, in turn, can accommodate varying levels of image noise, as it allows noise to be accounted for independently for each window, potentially leading to more robust centroid detection. Furthermore, by moving the window pixel by pixel, the position of the centroid candidate can be detected with greater precision. To calculate the statistical values as described in this disclosure, one or more processors are configured to determine whether a likelihood metric meets a predetermined condition and, optionally, calculate the likelihood of a hypothesis occurring or calculate a likelihood metric. According to some implementations, calculating the likelihood metric involves weighting or relating the likelihood of two or more hypotheses occurring. According to realizations, calculating the likelihood of a hypothesis being fulfilled comprises: establishing a hypothesis model; estimating statistical parameters of the hypothesis model based at least in part on a pixel parameter; and calculating the likelihood of the hypothesis by using algorithms based on the hypothesis model. The systems, methods, and devices described herein rely on hypothesis formulation and testing to estimate whether a centroid candidate lies within the window being analyzed. A hypothesis model is established, and its statistical parameters are estimated based, at least in part, on a pixel parameter or a parameter associated with a pixel, such as pixel intensity. Using these statistical parameters, the likelihood of the hypothesis can be calculated based on the hypothesis model. This allows for estimating, for each pixel or group of pixels in the window, the likelihood of a centroid candidate being present.By performing this hypothesis test for the window, which can be slid over the image, the hypothesis test can be adapted to the different pixel parameters of each window, thus adapting to the different noise levels present in different areas of the image. According to realizations, a first hypothesis is established as a null hypothesis and is modeled based on a statistical distribution; and a second hypothesis is established as an alternative hypothesis and is modeled based at least in part on a star characteristic that includes the star's shape, the number of stars, or the star's magnitude. According to realizations, the statistical distribution represents image noise and comprises at least one of a normal or Gaussian distribution, a Poisson distribution, or a statistical distribution that models diffuse light; a model of the second hypothesis comprises a combination of a function representing a star shape and a statistical distribution representing image noise; the function representing the star shape comprising at least one of a Gaussian bell curve, a saturated Gaussian bell curve, a sinc function, a square waveform, a rectangular waveform, a sawtooth waveform, or a triangular waveform. By calculating the likelihood of the first and second hypotheses being true, modeling the first hypothesis as a statistical distribution and the second hypothesis based on a star's characteristic, an estimate can be obtained of which of the two hypotheses is more probable (that there is no star or that there is a star). Furthermore, modeling the first hypothesis as a statistical distribution representing image noise, and modeling the second hypothesis as a combination of a function representing the shape of a star and a statistical distribution representing image noise, allows for the effective distinction between noise and centroid candidates. The determination of a centroid candidate is unaffected by the fact that the noise varies across different parts of the image. According to realizations, the one or more processors are also configured to calculate the likelihood metric, and the calculation comprises calculating a ratio of the likelihood of the second hypothesis occurring divided by the likelihood of the first hypothesis occurring. Calculating this ratio can allow for a certain normalization to adapt to the different noise levels present in different parts of the image, which may even have a different order of magnitude in different parts of the image. To determine whether the likelihood metric meets a predetermined condition for detecting one or more centroid candidates, as described in this disclosure, the one or more processors are configured to determine whether the likelihood metric is greater than, equal to, or less than a threshold value. The imaging system described herein determines the threshold value according to claim 1. The threshold value is determined as a combination of a fixed value and a variable value. According to realizations, the fixed threshold value is determined based at least in part on a multiple of the standard noise value of some or all of the pixels in at least one image, as a statistical noise estimate, or as a local noise estimate determined on the fly. According to realizations, the variable threshold value is determined based at least in part on a Bayesian interpretation associated with the probability metric, and where the calculation of the probability metric comprises the calculation of a ratio between two prior probabilities associated with the presence of a centroid candidate. According to realizations, one or more processors are further configured to reduce noise present in at least one image by using algorithms that include the removal of hot or dead pixels, smoothing of data by photographic response non-uniformity (PRNU), or checking the intensity level of the plurality of pixel sensors. According to embodiments, the one or more processors are configured to determine the one or more subregions based at least in part on an indication, including an attitude indication or a centroid indication. By using a prompt that can provide information about the subregions to be used for moving the window, time and computing power are reduced, since it is not necessary to move the window across the entire image, but it is enough to move it to the specific subregions indicated by the prompt. According to embodiments, one or more processors are further configured to determine the attitude indication, comprising: before capturing the at least one image, capturing a plurality of subsequent images; determining, based at least in part on a first image and a second image from the plurality of subsequent images, a first-order angular velocity estimate; and determining, based at least in part on the first-order angular velocity estimate, an attitude estimate associated with the at least one image, to obtain the attitude indication. If images have been captured at least once before the image(s) in question, the attitude indication can be determined for at least one image. This attitude indication can then be used to determine in which specific subregion(s) of the images the window should be placed—that is, where a centroid candidate is expected to be located. This attitude indication can be determined by knowing the attitude of a first image, the perspective of a second image (both captured at least before the image in question), and the time elapsed between the image captures. From this time, the first-order angular velocity of the vehicle between the first and second images can be estimated.Assuming that the angular velocity remained practically constant between the second image and the at least one image, an attitude estimate of at least one image can be determined, which can provide approximate information about the subregion(s) of at least one image in which the centroid candidates will be found, and which can be used as an indication of attitude. According to the implementations, the image acquisition system also includes a module for focusing light and a module for filtering diffuse light. According to realizations, the imaging system is totally or partially on board a mobile platform, including a manned or unmanned aerial, space, maritime or land vehicle. This disclosure further describes a method for determining the attitude of a vehicle, comprising: capturing at least one image; detecting one or more centroid candidates in the at least one image by filtering the image based at least in part on statistical techniques; mapping the one or more centroid candidates to astronomical objects to obtain correspondences; determining, based on the correspondences, a transformation factor; and determining, based on the transformation factor, the attitude of the vehicle. According to realizations, the method also comprises at least one step of removing background noise from at least one image, grouping pixels from at least one image to obtain clusters, and determining the cluster centroids to obtain centroid candidates. According to realizations, statistical-based techniques comprise a hypothesis testing technique. Filtering at least one image based at least in part on statistical-based techniques as described in this disclosure comprises determining whether the likelihood metric meets a predetermined condition for detecting one or more centroid candidates; and, optionally, establishing one or more model hypotheses; estimating the statistical parameters of one or more hypotheses based at least in part on a pixel parameter; calculating the likelihood of one or more hypotheses being met; and calculating a likelihood metric that relates the likelihood of one or more hypotheses being met. According to realizations, one of the hypotheses, or one or more of them, is established as the null hypothesis and is modeled based on a statistical distribution; and a second hypothesis of the one or more hypotheses is established as the alternative hypothesis and is modeled based at least in part on a star characteristic that includes the star's shape, the number of stars, or the star's magnitude. According to realizations, the statistical distribution represents image noise and comprises at least one of a normal or Gaussian distribution, a Poisson distribution, or a statistical distribution that models diffuse light; a model of the second hypothesis comprises a combination of a function representing a star shape and a statistical distribution representing image noise; the function representing the star shape comprising at least one of a Gaussian bell curve, a saturated Gaussian bell curve, a sinc function, a square waveform, a rectangular waveform, a sawtooth waveform, or a triangular waveform. According to realizations, calculating a likelihood metric involves calculating a ratio between the likelihood of the second hypothesis occurring divided by the likelihood of the first hypothesis occurring. The method described in this disclosure allows one to determine whether a likelihood metric meets a predetermined condition for detecting one or more centroid candidates, and includes determining whether the likelihood metric is greater than, equal to, or less than a threshold value. The method described in this disclosure determines the threshold value according to claim 12. The threshold value is determined as a combination of a fixed value and a variable value. According to realizations, the fixed threshold value is determined based at least in part on a multiple of the standard noise value of some or all of the image pixels, as a statistical noise estimate, or as a local noise estimate determined on the fly. According to realizations, the variable threshold value is determined based at least in part on a Bayesian interpretation associated with the likelihood metric, and where the likelihood metric is calculated by calculating a ratio between two prior probabilities associated with the presence of a centroid candidate. According to embodiments, some or all of the pixels of at least one image are filtered based at least in part on the hypothesis testing technique, using a window that is one or more pixels in size. According to embodiments, the window is moved over at least one image from a first position to a second position, pixel by pixel, such that the relative offset between the first and second positions is the size of one pixel or a multiple thereof, and that the pixels of the window at the first position overlap the pixels of the window at the second position by at least one pixel. According to realizations, the window moves over the image or images in question to filter all pixels of the image or images in question, or of one or more selected subregions of the image or images in question. According to realizations, one or more subregions are determined based at least in part on an indication, including an attitude indication or a centroid indication. According to embodiments, the method further comprises: before capturing the at least one image, capturing a plurality of subsequent images; determining, based at least in part on a first image and a second image from the plurality of subsequent images, a first-order angular velocity estimate; and determining, based at least in part on the first-order angular velocity estimate, an attitude estimate associated with the at least one image, to obtain the attitude indication. The embodiments include an imaging system installed on a stationary or mobile platform (e.g., a vehicle) comprising an imaging sensor, memories, processors, and using various computational algorithms in a processing unit (e.g., a processor or other logic circuit) to capture and process images of a starry sky to determine the attitude of the platform on which the imaging system is mounted. The imaging system may further comprise other elements including, but not limited to, means, modules, or units for focusing light, such as lenses, objectives, or telescopes; means (modules, units) for filtering stray light to prevent unwanted light sources from reaching the imaging sensor, such as deflectors, etc.The examples primarily illustrate imaging systems integrated into aircraft, spacecraft, or satellites; however, it should be noted that an imaging system can be mounted or attached to any stationary or mobile platform. For example, a ship can use an imaging system to capture, process, and analyze images of the sky to determine the vessel's orientation, and it can also determine its position by taking angular measurements from the Earth's horizon. The implementations include the capture, using optionally one or more imaging sensors on a spacecraft or satellite imaging system, of one or more images (also referred to herein as "image data," "frames," or "video frames"). The images may be processed or analyzed in real time and / or stored on a storage medium for later processing and / or analysis. In some implementations, the images are processed and analyzed in real time because, on a spacecraft or satellite, it is important to autonomously estimate and ultimately control the orientation (attitude) of the spacecraft while in orbit—for example, when the spacecraft needs to point an antenna toward a ground station or focus a payload camera on a specific target.In some cases, images can be stored and processed later to remove unwanted distortions and / or enhance some important features of the image. The realizations also include the analysis of one or more images to determine at least one centroid candidate, to estimate an angular velocity, and / or to obtain any other analytical results or information that can be extracted from the analysis of images captured by the image acquisition sensors. For example, a star-tracking system aboard a satellite may capture at least one image of the sky from space. The image may contain bright points that correspond to stars, but it may also contain bright points that, due to the presence of other light sources, may correspond to the moon, the Earth, a spacecraft, or may be due to phenomena such as hot pixels or streaks, as shown in FIG. 1.For this reason, the star-tracking system, according to existing implementations, processes the captured images by filtering them to remove unwanted phenomena and analyzes them to determine which bright points could be stars—that is, centroid candidates or star candidates. The star-tracking system can include several image sensors, and its processor can store the images captured by these sensors, preprocess them by applying smoothing techniques and removing pixels that are too light or too dark, and then filter the preprocessed images using a statistical method, such as hypothesis testing.Filtering the images in this way offers a considerable advantage, as it allows for the detection of stars even when the captured images are of low quality or have a low signal-to-noise ratio. Since there is no need to enhance image quality through hardware, this could reduce the cost and weight of the satellite's onboard cameras and imaging sensors. After filtering and, optionally, subjecting the captured images to further preprocessing, the centroid candidates can be determined, as explained elsewhere in this detailed description, to ascertain the satellite's attitude. The realizations include methods and systems for filtering images based, at least in part, on statistical techniques. Statistical techniques include methods, instructions, approaches, procedures, or formulas used to obtain information about data, such as descriptive or inferential statistics for data analysis. More specifically, the image filtering methods and systems described herein are based, at least in part, on hypothesis testing. As used herein, the term "attitude" typically refers to the position of a platform on which the imaging system or device is mounted with respect to a specific frame of reference.The platform can be stationary or mobile, such as a manned or unmanned spacecraft, aerial, land or sea vehicle, including artificial astronomical objects, satellites, spacecraft, vessels, aircraft, drones, etc. The realizations also include calculating statistical values associated with image pixels to test hypotheses and determine potential centroids. These statistical values may include the likelihood of the hypotheses being met, a ratio between the calculated likelihood of their occurrence, and so on. As used herein, the term "centroid candidate" refers to one or more image pixels that meet a predetermined condition. In some cases, the predetermined condition may be determined based on a calculated statistical value for the image pixel or group of pixels. For example, an image pixel may be selected as a centroid candidate if a likelihood metric calculated based on the intensity level of the pixel (and, for example, its neighboring pixels) exceeds a threshold value. The realizations may also include determining the hypotheses to be tested. These hypotheses can be established based on pixel properties or parameters such as intensity or gray levels, geometries, shape, local statistics, or other characteristics. For example, the star tracker might hypothesize the presence of a star based at least in part on the expected shape or intensity profile of a star, and might hypothesize the absence of a star as noise based on the intensity of the pixel or pixels. The terms "intensity" and "brightness" are used interchangeably throughout this detailed description. In a non-limiting example, a star tracker filters an image to determine potential centers of mass and their position within the image, based at least in part on hypothesis testing. Hypothesis testing involves calculating statistical values and determining whether a likelihood measure falls above or below a threshold value. After capturing an image of the starry sky, the likelihood of different hypotheses occurring can be calculated from estimating the statistical parameters (e.g., mean, standard deviation) of the hypotheses being tested, for some or all pixels or groups of pixels in the image. In some cases, the statistical parameters can be estimated quickly and efficiently, optimizing computational power by performing one or more two-dimensional convolution processes between matrices that include the captured image data and the modeled hypotheses.In some cases, the results of the calculated convolutions can provide preliminary indications of the coordinates in the captured image where there is a high probability of a hypothesis occurring, such that the position of the maximum values in the convolution results can indicate where the coordinates of the centroid-like events might be located. After estimating the statistical parameters based on the modeled hypotheses and the intensity level (pixel parameter) of the pixels or groups of pixels in the captured image, a likelihood metric can be calculated. The likelihood metric can represent a relationship between the likelihood of the hypotheses occurring, for example, the ratio between the likelihood of one hypothesis and that of another.Performing hypothesis testing in this way allows the star tracker to quickly and efficiently determine the maximum probability that a coordinate or position in the image matches a hypothesis—for example, whether or not there is a star at that position. By testing the hypotheses and calculating the likelihood metric, it is possible to obtain the positions of centroid candidates that will be evaluated as similar to the shape of a star—that is, pixels that could be stars—even in images with a low signal-to-noise ratio or that contain stars with low intensity values. In some cases, it is possible to perform these operations pixel by pixel on the image, although it is also possible to perform them on groups of pixels. To test hypotheses about the image pixel by pixel or by groups of pixels, the implementations may also involve defining a window comprising one or more pixels. The window can be moved or swiped across the image, typically one pixel at a time, to calculate statistical parameters for each pixel of the entire image or for pixels belonging to subregions of the entire image. For example, the window can be moved horizontally by one pixel, so that the window shifts one column horizontally, and / or it can be moved vertically by a distance equivalent to one pixel, so that the window shifts one row upward. For the pixels within each window, hypotheses can be established to calculate the statistical parameters.For example, assuming a hypothesis H0 that there is no star, modeled as noise, the Gaussian distributions of the pixels in the window would have the same statistical parameters; that is, the Gaussian distributions of the window would have the same mean (µ0) and the same standard deviation (0). Alternatively, assuming a hypothesis H1 that there is a star, modeled as a Gaussian bell curve representing the expected shape of a starspot, with the peak located in the center of the window and having the statistical parameters of amplitude (μ), mean (µ1), and standard deviation (1), the bell curve would be superimposed on the Gaussian distribution, which would have the effect of shifting the mean value differently for each pixel in the window. Depending on the intensity level of the pixels within the window, the statistical parameters (µ0, 0, μ, µ1, 1) can be estimated.The estimated statistical parameters µ0 and 0 can be obtained by maximizing the probability of H0, and the statistical parameters µ1, µ1, and µ1 can be obtained by maximizing the probability of H1. Thus, for each window, the statistical parameters µ0, 0, µ1, µ1 that maximize the probability of both hypotheses are chosen to calculate the likelihood metric, and the likelihood metric can be the ratio between the two likelihoods of the hypotheses. By determining whether the value of the likelihood metric is above or below a threshold value, it is possible to determine whether or not there is a star in the center of the window. It is useful to estimate the statistical parameters of each pixel in the image by moving a one-pixel-sized window across the entire image.However, in some implementations, for example, when the calculations have already been solved and one or more centroid candidates have been detected, or when it is possible to obtain an indication, the star tracker can use that information to reduce the areas of the image to be explored, so that, instead of searching the entire image, that is, instead of estimating the statistical parameters in each pixel of the entire image by moving the window, usually one column and / or one row at a time, it is possible to perform searches in preselected subregions of the image by calculating the statistical parameters of each pixel of the subregion, moving the window (usually one column and / or one row at a time) over the subregion instead of over the entire image, with the advantage of reducing computation time. By proceeding in this way, the impact of noise on attitude estimation is considerably reduced when using images with a low signal-to-noise ratio. This eliminates the need for expensive, bulky, or heavy star-tracking systems that require high-resolution cameras, which typically weigh more than 20–40 kg. Noise is not usually constant throughout the image and, for example, may not be of the same order of magnitude. For this reason, defining the likelihood metric as a ratio between statistical values, such as the likelihoods of the hypotheses occurring, reduces the influence of the non-uniform distribution of noise in the image.This is possible because the statistical parameters of the hypotheses can be estimated independently for each pixel or window, that is, so that if the noise of one window is different from that of another window, this can be reflected in the calculated likelihoods, since the distribution that models the noise can have different statistical parameters for each pixel or window. The realizations also include assigning previously identified centroid candidates in the images to astronomical objects. The centroid candidates can be identified from databases or catalogs that include information such as the position and / or identity of the astronomical objects, usually expressed in an inertial frame of reference. The astronomical objects identified in the images can include natural or artificial objects or bodies, such as stars, planets, or satellites. Typically, the listed astronomical objects are grouped because they belong to the same type, morphology, origin, detection methods, or discovery methods. In some cases, artificial astronomical objects may be included in the list because their trajectory can be known or calculated (e.g., artificial satellites in orbit).Based on the corresponding astronomical objects, other realizations also include the determination of the attitude of the spacecraft or the satellite imaging system. Among the main disadvantages of conventional star-tracking systems is the need to consult star catalogs numerous times, which increases computing resources and is unsuitable for resource-constrained platforms such as satellites. These systems also include estimating the position of previously identified astronomical objects, such as stars, based at least in part on the analysis of two or more images, typically later images or, sometimes, consecutive images. Example of an imaging system for attitude determination According to some embodiments, the imaging system described herein may be part of a stationary platform, such as a ground station, or may be part of a mobile platform, specifically a manned or unmanned space vehicle, an aerial vehicle, a maritime or land vehicle, such as a ship, vessel, aircraft, spacecraft, balloon, satellite, or any other platform on which the attitude-determination imaging system may be installed. Figure 2 is a block diagram of an attitude-determination imaging system 200 on board a mobile platform, such as a satellite 202 in low Earth orbit (LEO), medium Earth orbit (MEO), or geostationary orbit (GEO), in accordance with the embodiments of this disclosure.The imaging system 200 may comprise one or more imaging sensors 204, one or more processors 206, and computer-readable media 208. The imaging system 200 is configured as any suitable computing device or system. The imaging sensor(s) 204 may include a plurality of pixel sensors, such as light-absorbing diodes. The imaging sensor(s) 204 may be of various types, such as, for example, a charge-coupled device (CCD), a complementary metal-oxide-semiconductor (CMOS) sensor, or another suitable architecture.The 206 processors are central processing units (CPUs), graphics processing units (GPUs), or both CPUs and GPUs, or any other type of processing unit, such as digital signal processors (DSPs), tensor processing units (TPUs), field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), or others, such as artificial intelligence and machine learning accelerators. Optionally, the 206 processor(s) may be separate from the imaging sensor(s) 204, located at a distance, or integrated into the imaging sensor(s) 204. Other examples of processors or components may be used with the embodiments described herein and are deemed to provide the described features and advantages.One or more processors 206 are processors dedicated to the imaging system 200, but, for example, it may be the same processor that controls satellite 202. Computer-readable media 208 is permanent and can store various instructions, routines, operations, and modules (collectively called "programs"), which can be loaded and executed on one or more processors 206, as well as data generated during the execution of, and / or that can be used in conjunction with, these programs, such as image data, pictures, etc. Computer-readable media 208 can include volatile and non-volatile memory, movable and immovable property, and physical media used in any process or technology for the storage of information, such as computer-readable instructions, data structures, program modules, or other data. System memory, removable storage, and non-removable storage are examples of computer-readable media 208.Computer-readable media 208 may include, but is not limited to, phase-change memory (PRAM), static random-access memory (SRAM), dynamic random-access memory (DRAM), other types of random-access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory (such as NAND flash memory, which may be enclosed in one or more non-volatile memory cards, and which includes both single-level and multi-level cell technology) or other memory technology, compact disc-read-only memory (CD-ROM), digital versatile discs (DVD) or other optical storage, magnetic cassettes, magnetic tape, storage on magnetic disks or other magnetic storage devices, or any other tangible, physical medium that can be used to store information and that can be accessed by a computer device. In some cases, the imaging system 200 may also comprise one or more baffles (not shown) primarily intended to filter stray light, to reduce or minimize the level of stray light directed toward the imaging sensor(s) 204, as well as lenses (not shown) located in the optical path of the imaging sensor(s) 204. In some implementations, a plurality of imaging systems located in different directions on board the satellite and oriented toward different regions of the sky may be used. As used herein, the term "a plurality" refers to more than one accounting entity. Generally, system memory, processors, and / or modules stored in system memory may be shared among the plurality of imaging systems.In some cases, a single imaging system may have multiple imaging sensors. Other combinations of the number of imaging systems or their components may be used with the embodiments described herein. The computer-readable medium 208 can store one or more modules for controlling the imaging system 200 and other systems and hardware components on board the satellite 202, such as interfaces, payloads or sensors, as well as other satellite-related tasks, and for image processing and analysis. The computer-readable medium 208 may include at least a control module 210, an image processing module 212, a detection module 214, a matching module 216, and an attitude estimation module 218. In some embodiments, some or all of the module functions may be implemented as logic functions in the processor(s) 206. It should be noted that not all modules need be present in all embodiments, that additional modules may exist for other purposes, and that several modules may exist for one or more of the purposes described. The computer-readable medium 208 may store one or more database data sets 220, such as astronomical catalogs listing stars. The control module 210 can perform some or all of the control functions related to image capture and processing, in accordance with the realizations in this disclosure. The control module 210 can be implemented by the processor or processors 206 to control, such as through one or more input / output interfaces, the image acquisition sensor or sensors 204. The control module 210 is primarily responsible for sending instructions to the hardware components of the image acquisition system 200 to capture image acquisition data. The control module 210 may also include instructions for collecting, storing, cataloging, and time-stamping the collected images, as well as determining exposure, magnification gains, and image statistics, among other things. Image Processing Module 212 can perform various image processing functions of the Image Acquisition System 200, including intensity normalization, filtering, grouping, centroid calculation, smoothing, color enhancement, and / or processing to enhance the resolution or other attributes of image data, in addition to other processing functions such as blur removal, distortion correction, phenomenon removal, cropping, image conversion, image compression, data encryption, etc. Image Processing Module 212 can include instructions for image preprocessing and processing to reduce image noise present in the frames. As used herein, the term "noise" is a broad concept that refers to data that is meaningless on its own and detracts from the clarity of useful data.The most relevant type of noise in this disclosure is image noise, which reduces the sharpness of image data, such as background noise present in the image. In some cases, image noise may include noise generated by the image sensor, such as hot pixels (i.e., defective pixels), dark current, fixed pattern noise, etc. For example, the satellite may capture images with the image sensor in complete darkness to obtain a dark frame or an average of dark frames, and may apply dark frame subtraction techniques to reduce the background noise introduced by the image sensor. Image processing module 212 can implement any type of image processing programs or algorithms, including programs suitable for removing defective pixels, smoothing photographic response non-uniformity (PRNU), etc. The detection module 214 is primarily responsible for detecting potential centers of mass by filtering images or frames that have typically been preprocessed by the image processing module 212 to reduce background noise. After detecting potential centers of mass in the preprocessed images, the detection module 214 can provide the position (e.g., the (x, y) coordinates) of the detected centroid candidates to the correspondence module 216. The detection module 214 can detect centroid candidates based, at least in part, on a statistical technique involving hypothesis testing. A hypothesis test typically evaluates the probability of a hypothesis using data from a sample (e.g., data from the star tracker). Generally, the goal of the test is to provide evidence regarding the plausibility of a null hypothesis and an alternative hypothesis.Both hypotheses are mutually exclusive, and only one can be true. In some cases, it is possible to test more than two hypotheses, provided they are all mutually exclusive. Typically, detection module 214 detects centroid candidates as described in the processes outlined in Figures 3 to 8. The Correspondence Module 216 is primarily responsible for associating some or all of the centroid candidates detected by the Detection Module 214 with stars. Correspondence Module 216 can use information provided by the 220 database, which contains star identification data and may include information about the position of stars in stellar coordinates (i.e., with respect to an inertial frame of reference). Generally, the satellite can identify stars using star charts, tables, or catalogs, but it can also identify other objects using astronomical object catalogs that list artificial or natural astronomical objects, such as planets or satellites.The correspondence module 216 can use various techniques and algorithms to identify stars, including techniques based on the relative intensity of centroid candidates, the patterns formed by centroid candidates, the relative position between centroid candidates, or any other property or parameter associated with the centroid candidates. Once the stars are identified, the correspondence module 216 can determine the star vector coordinates in the inertial frame of reference for the centroid candidates that match the stars in database 220. From the star vectors, the correspondence module 216 can generate a mapping between the coordinates of the stars in database 220 and the coordinates of the centroid candidates in the image. The attitude estimation module 218 is primarily responsible for estimating the satellite's attitude based on coordinate mapping. The attitude estimation module 218 can employ algorithms to determine rotation atrices that relate the satellite's orientation to star vectors in the inertial reference frame. These atrices represent mappings between the inertial reference frame (i.e., the star vectors) and the body's reference frame (i.e., the imaging system 200 and / or the satellite centroid 202). Examples of operations for determining attitude Figures 3 to 8 represent flowcharts showing examples of processes according to various implementations. The operations of these processes are illustrated in individual blocks and summarized by referencing those blocks. These processes are illustrated by logical flowcharts, the operation of which can represent a set of operations that can be implemented in hardware, software, or a combination of both. In the context of software, the operations consist of computer-executable instructions stored on one or more computer storage media (also called "computer-readable media") that, when executed by one or more processors, allow one or more processors to perform the described operations.Generally, computer-executable instructions include routines, programs, objects, modules, components, data structures, and the like, which perform particular functions or implement particular abstract data types. In the context of hardware, operations can be carried out on an integrated circuit, such as an ASIC, a programmable logic device (PLD), such as an FPGA, GPU, CPU, or TPU. Other hardware examples can be used with the implementations described herein, and these are considered herein to provide the described features and advantages. The order in which the operations are described is not intended as a limitation, and any number of the described operations may be combined in any order, divided into sub-operations, and / or performed in parallel to implement the process.The processes according to various embodiments of this disclosure may include only some or all of the operations depicted in the logic flow diagram. Likewise, the operations may be performed by a single system, such as stationary or mobile platforms on board, or they may be shared among several systems located on board one or more vehicles or on ground systems. Figure 3 is a flowchart showing some (large-scale) steps of an example process 300 for determining the attitude of a spacecraft using star tracker data, according to embodiments in this disclosure. In 302, one or more images can be captured. The star tracker control module 210 (a type of imaging system installed on a spacecraft) can instruct an imaging sensor to capture one or more images. The star tracker comprises a camera having one or more optical imaging sensors. The star tracker can capture or acquire multiple images using one or more cameras. In some cases, the process steps can be executed separately on independent processors associated with each camera, while, for example, the steps can be carried out on a single processor that receives the images from multiple cameras. In 304, captured images can be processed to remove or reduce noise. Various algorithms can be applied for image processing, including instructions for checking the intensity level of the pixels that make up the image data, removing hot pixels, smoothing PRNU, and so on. In step 306, one or more centroid candidates can be detected in the processed images. A partial image can be used instead of a full-size image at this stage, although a full-size image can also be used. A detection module 214, executed by a processor on the star tracker (although, for example, this could be the same processor as the spacecraft's main processor), can detect the centroid candidates, as described elsewhere in this detailed description. Each detected centroid candidate has a specific position in the image and can be represented by an XY pair or an XY coordinate, representing a horizontal and a vertical position in the image, respectively.The XY coordinate also refers to the image acquisition sensor, so that the XY coordinates correspond, respectively, to the horizontal and vertical directions of any pixel or addressable point of the image acquisition sensor. In 308, the one or more detected centroid candidates can be associated with stars. A matching module 216 can determine which of the detected centroid candidates are stars, using a star catalog or database. Various algorithms that take into account the local characteristics of stars can be employed to identify stars or constellations by comparing the centroid candidates with known stellar patterns, such as techniques based on the angular distances between two nearest neighboring stars, information about the area A of a triangle comprising several stars, the three plane angles of the triangle, or any other pattern matching technique that proves useful for relating the centroid candidates to a star or constellation.Once one or more stars have been assigned to one or more detected centroid candidates, the correspondence module can establish a one-to-one mapping between the XY coordinates of the stars in the inertial frame of reference and the XY coordinates of the possible centers of mass detected in the body frame of reference. In step 310, a transformation factor is obtained based on the detected centroid candidates that coincided with the stars. The transformation factor can comprise any relationship that represents the mapping between the coordinates of an inertial reference frame and the coordinates of a body reference frame. The transformation factor can comprise a rotation matrix that allows the spacecraft's orientation to be calculated with respect to the stars' inertial reference frame. The transformation factor can be calculated based on the camera model, the location and type of cameras or imaging sensors, or any other factor relevant to this calculation. An attitude estimation module can use the information obtained from the previous process to estimate the spacecraft's qB / N attitude. Figure 4 is a flowchart showing some (high-level) steps of an example process 400 for detecting one or more centroid candidates, according to the embodiments in this disclosure. In 402, a filter is applied to an image to obtain candidate pixels—that is, pixels that are candidates for the centroid. Typically, the image has been preprocessed to remove background noise generated by the camera that captured it. The image may be filtered using statistical techniques, such as hypothesis testing, based at least in part on a likelihood metric, as explained in more detail in the flowchart in Figure 5. By applying a filter to the image, the detection module can select the pixels that meet the requirements to be centroid candidates (i.e., candidate pixels) and obtain the XY coordinates of those pixels. In 404, candidate pixels can optionally be grouped to form one or more pixel clusters. Once the XY coordinates of the candidate pixels are obtained, the detection module can recognize which candidate pixels are adjacent and form pixel clusters with them. For example, detection module 214 can determine a threshold distance, such that any candidate pixel whose XY coordinates are equal to or less than this threshold distance from the XY coordinates of another candidate pixel is considered a neighboring candidate pixel. The detection module can then group the candidate pixels that lie within the threshold distance to form a cluster. By grouping adjacent candidate pixels, the detection module can obtain one or more sets of XY coordinates corresponding to the pixels that form one or more clusters. In 406, a cluster centroid can be determined for some or all of one or more clusters to obtain centroid candidates. Several algorithms can be used to determine the cluster centroid for some or all of one or more clusters, obtain the XY coordinates of each cluster centroid, and establish the XY coordinates of the cluster centroid as a centroid candidate. The positions of the centroid candidates can then be used by the mapping module to identify one or more stars and associate them with the centroid candidates, typically using a star catalog or other astronomical objects. By proceeding in this way, it is possible to increase the accuracy of the determined positions for the centroid candidates, resulting in a more efficient result; the mapping module can perform a more precise and accurate mapping. In some cases, the detection module 214 can generate a frame or filtered image from selected pixels using a hypothesis test, statistical distributions, and functions that model the hypotheses and / or predefined conditions. For example, the detection module can determine an intensity level for each pixel in the frame by estimating, based at least in part on the modeled hypotheses (e.g., there is a star and there are no stars), the statistical parameters that led to the observed data. The statistical parameters can be estimated by determining those that maximize the likelihood of the hypotheses, e.g., the likelihood of the hypothesis that there is a star in a pixel and the likelihood of the hypothesis that there are no stars in that same pixel.Based on the estimated statistical parameters, the likelihoods of the hypotheses are calculated, and a likelihood ratio between them can be determined. The pixel intensity level can be determined based on whether the likelihood ratio meets a predetermined threshold value. By determining the intensity level of the pixels in the frame in this way, the detection module can create the filtered frame. Figure 5 is a flowchart showing some (high-level) steps in a sample process 500 for filtering frames using a hypothesis test to detect centroid candidates, based at least in part on a likelihood metric. In 502, a null hypothesis and one or more alternative hypotheses can be established. Any type of hypothesis can be formulated, such as one-sided or two-sided hypotheses, as long as the hypotheses are mutually exclusive, that is, only one of them can be true. For example, a null hypothesis H0 can be formulated as "there is no star," and the alternative hypothesis H1 can be formulated as "there is a star." It should be noted that, apart from hypotheses based on the shape of stars, other hypotheses can be modeled, for example, hypotheses based on stellar magnitudes, about the magnitude of stars, and so on.For example, different stellar magnitudes can lead to different hypotheses, such as H0: "there are no stars", H1: "there are stars of magnitude 1 or 0", H2: "there are stars of magnitude less than 0" and so on. In 504, hypotheses can be modeled. For example, the null hypothesis H0 can be modeled as noise (also called "image noise"), that is, if the hypothesis is that there are no stars, then only the noise generated by the imaging system would be present. The noise can be modeled using a statistical distribution comprising a Gaussian distribution representing random noise. Additionally or alternatively, it is possible to model the noise as photonic noise using a Poisson distribution, since photonic noise is often the main noise found in raw images, or it is possible to model the noise as stray light. In some cases, the noise can be modeled as a combination of a stray light noise model and a photonic noise model, which can be used as a reference.The alternative hypothesis H1 can be represented as a star-shaped pattern, such as a starspot, and the modeling can include any noise present in the pixel. For example, the star pattern can be modeled as any function or waveform that represents the assumed shape of the star, such as a Gaussian bell curve, a saturated Gaussian bell curve, a sinc function, a square waveform, a rectangular waveform, a sawtooth waveform, a triangular waveform, any combination of these, and so on—that is, any suitable function that can approximate the assumed shape of the star. The noise can be modeled similarly to the noise in the null hypothesis (e.g., a Gaussian or normal distribution). In some cases, if H0 is modeled as noise, H1 will include the same noise model as the modeling in H0. Figure 6 shows an example of the null hypothesis H0: "there is no star", I(x, y) = n(x, y), and the alternative hypothesis 1: "there is a star", I(x, y) = g(c, s) + n(x, y). The main advantage of modeling noise as a statistical distribution is that it allows it to be applied to each pixel of the image independently. It should be noted that experts in the field will recognize other functions or distributions for modeling the hypotheses. In 506, the likelihood of the hypotheses being met is determined. The likelihood of the hypotheses being met can be calculated for all pixels in the frame (full frame) or for preselected pixels within the frames (subregions). Additionally or alternatively, the likelihood of the hypothesis occurring in a pixel can be calculated by evaluating the pixel or a window that includes it. In this document, the term "window" refers to a group or set of pixels, as described in more detail elsewhere in this detailed description. It should be noted that the terms "likelihood" and "probability," as used herein, will be used broadly, and their calculation may encompass any algorithm that calculates statistics based on the models designed for the hypotheses.An expert would understand that the term "probability" is used to determine the likelihood of a particular situation occurring, while the term "likelihood" is generally used to refer to the likelihood of a particular situation occurring. Thus, the term "likelihood of a hypothesis occurring" refers to the probability that the statistical parameters of the function and / or distribution chosen to model the hypothesis will fit the observed data (e.g., the intensity levels of the pixels in the captured image). Therefore, the estimated statistical parameters would be the most plausible option in light of the observed data.In other words, if the parameters of a statistical distribution are fixed and the random variable is variable, then a probability is calculated, whereas if the statistical parameters of a statistical distribution are variable and the random variable is fixed, then a likelihood is calculated. In some cases, it is possible to detect centroid candidates using the calculated likelihood of the null and alternative hypotheses (H0 and H1) occurring. However, for poor-quality images with a low signal-to-noise ratio, typically captured by low-cost cameras, centroid detection based solely on likelihood determination is a technique sensitive to the different distributions of random intensity values across the images.In contrast, since noise may not be constant or of the same order of magnitude throughout the image, the detection module can detect centroid candidates based on a likelihood metric that can be calculated independently for different pixels, windows, or areas of the image, thus allowing it to adapt to the noise present in different areas of the image. In 508, a likelihood metric is calculated. The likelihood metric can be described as a weighting of values or a ratio of the likelihood of certain events occurring. In some cases, the likelihood metric can be calculated as the ratio of the estimated likelihoods of the hypotheses. For example, after calculating the likelihood of H0 occurring as the probability that the intensity of a pixel is noise, given the intensity of the pixel (L(H0|I) = P(I|H0)), and the likelihood of H1 occurring as the probability that the intensity of the same pixel is a star, given the intensity of the pixel (L(H1|I) = P(I|H1)), the likelihood metric can be calculated as the ratio of the likelihood of H1 being true to the likelihood of H0 being true (L(H1|I) = P(I|H1)). | |) . By using the relationship between the likelihoods when the likelihood metric is calculated as the ratio of the likelihoods, there can be a kind of normalization that allows comparing, for the same region, the two likelihoods of the two hypotheses, solving the problem of the noise that the image has in its entirety. After calculating the likelihoods of the hypotheses being met and the likelihood indices, it is possible to preliminarily identify potential centers of inertia. However, if detection module 214 proposes too many centroid candidates to the correspondence module, this could hinder correspondence module 216 from finding matches between the centroid candidates and the stars in the catalog. It could also reduce the calculation speed, time, and even accuracy, because too many centroid candidates could lead to errors in the correspondence module. Consequently, it is important to minimize false positives (i.e., centroid candidates that are not stars) to provide the correspondence module with the minimum number of centroid candidates required.One way to minimize false positives could be to detect centroid candidates by determining whether the likelihood metric meets a predetermined condition. The predetermined condition could include a predetermined threshold value. In step 510, a threshold value is determined. The threshold value can be a fixed value used in all windows or pixels of the image, or a variable value that can differ depending on the different pixels or windows of the image. In some cases, the fixed value can be calculated as a multiple of the standard noise value of some or all of the image pixels, as a statistical noise estimate, or as a local noise estimate determined on the fly. A constant threshold value for calculating the statistical values of each image window and / or image subregion can reduce computational time and resources, enabling simple and rapid calculations. In some cases, the threshold value can be determined based on the amplitude of the noise present in the image. It is also possible to determine the threshold value by deriving a mathematical expression that takes into account a predetermined level of desired sensitivity in the probability measurement. Finally, it is possible to determine the threshold value using Bayesian interpretation.According to this interpretation, instead of defining the likelihood metric as the ratio of two probabilities, the likelihood metric is defined as the ratio of two prior probabilities. For example, the prior probabilities can be calculated as the probability of the intensity level of the detected pixel, given the hypothesis H1 or H0, so that the ratio is between the probability of H0 being true and the probability of H1 being true. The threshold value can be adjusted or calibrated from prior information by determining the probabilities of the prior hypotheses, such that if a star was detected in a previous frame, its position could be predicted in a subsequent frame, and that information could be used to adjust the threshold value. This disclosure combines methods for determining the threshold value. For example, first, a threshold value is determined using prior probabilities to identify image locations where centroid candidates should be searched. Then, after obtaining the most plausible locations for these candidates, a fixed threshold value is established; that is, a constant threshold value is used to subsequently locate centroid candidates throughout the image. As explained earlier, the ability to use a constant threshold value is useful and advantageous for reducing complexity and computation time.This is possible because the probability parameters can be estimated for each window as it moves across the image, adapting to any type of noise that may be present in it, and because the threshold value can be used to evaluate a likelihood metric that represents the ratio between probabilities, in a way that normalizes the data. In 512, the threshold value can be used to detect potential centroids. The detection module can identify centroid candidates by determining whether the likelihood metric is greater than, equal to, or less than the threshold value. For example, if the likelihood metric exceeds a predetermined threshold value, such that the ratio is greater than T, this could indicate that, for the pixel being evaluated, the probability that The probability of it being a star is greater than the probability of it being noise. Therefore, the detection module can determine that a pixel is a centroid candidate if the likelihood metric exceeds the predetermined threshold value. By acting in this way, it is also possible to enhance the filtering process by sending information to the image processing module 212. For example, new hot pixels that appear repeatedly in many frames and that the matching module has not detected can be identified; therefore, the detection module 214 can send this information to the image processing module, which can consider these pixels as defective pixels and use them in the image preprocessing phase to remove background noise.Another way to enhance the filtering process is to include another filter before the mapping module 216 (for example, in the processing module or the detection module) that can detect satellite candidates in the image, either by using a satellite database or by determining the position of a satellite whose trajectory is known or can be calculated, so that these pixels do not arrive at the mapping module as centroid candidates; otherwise, the mapping module could receive information about the identity and position of these pixels sent as centroid candidates and assign them a lower probability of being a star. In some cases, the likelihood of the hypotheses occurring and / or the likelihood metric at a pixel can be determined by considering information from surrounding pixels, by establishing a window comprising a preselected number of pixels surrounding the pixel in question. Figure 6 illustrates an example of a window and hypotheses for detecting centroid candidates, according to embodiments of this disclosure. For example, for the two-dimensional image 602 comprising a plurality of pixels, the likelihood of the hypotheses occurring and / or the likelihood metric can be calculated in the window 604, comprising N × M pixels; where N and M are integers ranging from 1 up to the number of pixels corresponding to the size of the image. In some implementations, N may be equal to M. The size and / or shape of the window are arbitrary and may comprise an arbitrary number of pixels.In some cases, the window may include a single pixel. For example, when the preset window is a single pixel and the hypotheses are tested pixel by pixel, even if a pixel appears bright, it could be considered noise because it doesn't fit the stellar model, which corresponds to the hypothesis that there is a star (H1). Therefore, a preset window (or a single pixel, if it is the size of a single pixel) may contain more noise, but the hypothesis that there is no star (H0) will still be the most plausible.The size of the window can be determined based on the astronomical object to be detected, on the hypotheses, on the overall noise level to be integrated across the window, or on any other relevant criteria that take into account resolution and noise levels. If the window is too small, it may be difficult to distinguish between objects, and if it is too large, it may capture more noise than desired for object detection. By testing the hypothesis at preselected time intervals, it is possible to detect stars even in low-contrast images, where the background of the captured images may not always be sufficiently dark compared to the bright points, generally due to light reflections from stray sources such as those shown in Figure 1. In a non-limiting example, a star tracker can filter images by checking hypotheses H0 and H1 to obtain the pixels that meet the requirements to be centroid candidates in the two-dimensional image 602, using window 604. The detection module 214 can calculate the probabilities and likelihood metric within the N x M pixel window 604 and can shift the window to a horizontally or vertically offset position from its original position, to calculate the probabilities and likelihood metric with the pixels of window 604 that are in the offset position.In some implementations, the window 604 can be horizontally slid or shifted 606 from a first position to a second position, one pixel at a time, that is, in such a way that the relative offset between the first and second positions is the size of one pixel, so that the pixels of the window 604 in the first position overlap, by at least one pixel, with the pixels of the window 604 in the second position. Depending on the size of the window, the relative offset between the first and second positions may be the size of one pixel or a multiple thereof. It should be noted that the window 604 can be shifted in other directions, in addition to or independently of horizontal shifts with respect to the first position or to a later position of the window (e.g., windows can be slid vertically, windows can be slid both horizontally and vertically, and so on).Generally, it can be assumed that the star will be located in the middle or center of the window. However, the exact location within the image can be determined, since the window can be moved pixel by pixel. Therefore, by moving in one-pixel increments, it is possible to pinpoint the exact location of the pixel most likely to be a star. Similarly, it is possible to estimate statistical values or parameters using convolution operations, thus reducing the potential computational load. In some cases, the window can be moved across the entire image, allowing the likelihood of the hypotheses being met and / or the likelihood metric to be calculated for each pixel of the two-dimensional image 602, in order to obtain centroid candidates in all pixels of the two-dimensional image 602.This process can be useful when a star tracker installed on a spacecraft becomes disoriented, for example, when the spacecraft has no prior information about its position, such as in the so-called "Lost in Space" scenario. In other implementations, the window can be moved across different areas of the full image, as explained elsewhere in the detailed description. Continuing with the same example of the hypotheses H0: "there is no star" and H1: "there is a star", the detection module 214 can calculate the likelihood of H0 occurring (L(I) = P(H0)) at a pixel in a window by estimating the statistical parameters of the statistical distribution that represents the noise at that pixel, taking into account the pixels of the window. The likelihood of H0 (L(I) = P(H0)) at a pixel can represent the probability of observing the modeled noise in the window, and the estimated statistical parameters can include the mean value µ0 and the standard deviation μ0 (Eq. 1). Ec.1 The detection module can also calculate the likelihood of H1 occurring (L(I) = P(H1)) by estimating the statistical parameters of the statistical distribution that represents the noise and the star's shape. The probability of H1 occurring (L(I) = P(H1)) at a pixel can represent the probability of observing the modeled noise and the modeled star, i.e., the shape (g), in the window, and the estimated statistical parameters can include the star's amplitude, the mean noise value µ1, and its standard deviation 1 (Eq. 2). In some cases, the statistical parameters can be estimated by calculating the maximum likelihood estimator (Eq. 3), as the values that maximize the probability of each of the hypotheses, respectively. Typically, the amount and type of noise present in a pixel can vary from one pixel to another across the image, usually due to stray light sources that can vary from one part of the image to another. Therefore, the advantage of the process described in this disclosure is that, since the parameters can be estimated for each window, the filtering process can be tailored to the type of noise present in that window, i.e., in that part of the image. Another important advantage is that, by proceeding in this way, all calculations (i.e., estimating parameters, calculating likelihood metrics, etc.) can be performed within a given computation time. With the calculated likelihoods, which, for example, were estimated specifically for each window, a likelihood metric can be calculated that relates both likelihoods. The likelihood metric can be calculated as the ratio between the two likelihoods corresponding to the window after each shift (Eq. 4), which can be interpreted as the probability of obtaining that pixel intensity level whenever there is a star, divided by the probability of obtaining that pixel intensity level, given that there is no star. A threshold value can be set to select pixels that can be considered centroid candidates. For example, if the numerator is greater than the denominator, so that the likelihood metric is greater than the threshold, the hypothesis test indicates that the pixel is more likely to be a star; otherwise, it is not a star. In some cases, calculating the ratio between the two likelihoods yields a dimensionless number that can be interpreted as a brightness level. Therefore, after calculating the likelihood metric (e.g., the ratio) for each pixel in the entire image, the 214 detection module can generate an image where each pixel, instead of representing the original brightness value captured by the image sensor, represents the dimensionless number. This provides a sharper image of the centroid candidates because much of the noise is filtered out, and bright spots that were previously difficult to see are now perceived more clearly. In other cases, it is possible to calculate the likelihood of the hypotheses occurring and the likelihood metric for obtaining centroid candidates in pixels of preselected image subregions, rather than in every pixel of the image. Figure 7 is a flowchart showing some (high-level) steps of an example process 700 for detecting centroid candidates in image subregions, according to the embodiments in this disclosure. In 702, one or more raw images (frames) are captured. The control module 210 can instruct the image acquisition sensors to capture one or more images. As in the previous examples, a partial image, not a full-size image from the image acquisition system, can be used at this stage, although a full-size image can also be used. In some cases, at least a first image and at least a second image are captured.In 704, the raw frames can be pre-processed to remove any background noise present in them, as explained in previous examples. In 706, based on one or more frames, an attitude indication can be estimated. The term "indication," as used herein, refers to information useful for parameter determination; for example, "attitude indication" refers to information useful for estimating the vehicle's attitude, "centroid indication" refers to information useful for estimating possible centroids, and so on. Indications can be obtained in many ways. For example, an attitude indication can be obtained from inertial sensors, such as a gyroscope, which can provide the satellite's angular velocity. In this example, knowing the attitude from a first image and using the inertial sensor information, the vehicle's rotational speed can be calculated between the first image and a second image whose attitude is to be estimated.Indications of attitude can also be determined from images captured by image sensors. For example, an indication of attitude can be obtained by estimating the optical flux of bright spots (e.g., centroid candidates) from an initial image (whose attitude is known) to one or more subsequent images. This method allows for rapid localization of the bright spots' movements. Alternatively, the attitude indication can be obtained by calculating the angular velocity from at least two previous images, as explained in Figure 8. Alternatively, the attitude indication can be obtained by estimating the angular acceleration using at least three previous images. In 708, one or more subregions of the image can be determined. In some cases, the detection module 214 can use centroid indication information to determine one or more subregions. For example, by capturing subsequent frames, centroid candidates move from one position in one frame to a new position in the next. Therefore, using the known position of the centroid candidates in one frame and attitude information, it is possible to predict where the centroid candidates will be in the next frame. Based on the predicted position, the detection module can select those parts of the image surrounding the bright spots where the centroid candidates are presumed to be located to determine the subregions.The detection module can then filter the image into subregions using the hypothesis-based process, as explained earlier, to search for potential centroids and discard the remaining regions, thus accelerating the filtering process. The ability to define subregions is also advantageous because it can reduce the number of false positives by avoiding searching for centroid candidates in image regions where the 216 matching module is known beforehand not to find stars. In some cases, the detection module can define subregions so that each one is centered on a centroid hint, or it can define subregions so that a single subregion can encompass multiple centroid hints. The detection module can also define the size of the subregion in pixels within a predetermined range from the centroid hints. In 710, one or more centroid candidates may be detected in one or more specified subregions of the image. The detection module 214 can test hypotheses H0 and H1, calculate likelihood metrics, and so on, in each subregion, either pixel by pixel or using windows, as described in the preceding examples. In some cases, the detection module can determine, based on the orientation indication and window size, the iterations required to move the window through the image subregions to search for centroid candidates in all pixels within those subregions and, optionally, perform the calculations using convolution operations to further accelerate the computations. In 712, one or more centers of gravity can be determined. Using the coordinates of the possible centers of gravity (xy pairs), the star catalog, and the attitude indication, the 216 matching module can predict the position of stars in the image based on their positions in a previous frame to obtain one or more centers of mass. For example, the matching module can search the star catalog for stars using the centroid candidates determined for the first frame. By predicting, based on the attitude indication, where stars might appear in subsequent captured frames, the matching module can determine the centroid indications—that is, the probable position (xy coordinates) of the centroid candidates in frames captured after the first.This information can also be used in other modules to generate threshold values for testing hypotheses. The centroid indications can be useful for the matching module, which can search for matches in a portion of the star catalog containing the stars intended for the subsequent frame. Star catalogs typically contain thousands of stars, whose position, magnitude, and, for example, spectroscopic information may be included. However, the camera's field of view captures images containing a small number of stars compared to the total number of stars in the catalog.Consequently, instead of examining the entire star catalog to find matches between centroid candidates and stars when determining centroid indications, it's possible to examine a smaller portion of the catalog for matches, requiring less time and computing resources. In some cases, the matching module can also predict new stars that might appear in the camera's field of view based on the predicted positions of existing stars and use this information to optimize the matching process. Therefore, the matching module can re-project the catalog stars into the camera's field of view, allowing it to search for matches with stars that, according to the predictions, were within the camera's field of view.In some cases, the correspondence module can determine a section or part of the star catalog in which to search for stars based on the camera's field of view and the centroid and / or attitude indications, so that the portion is determined as a multiple of the camera's field of view, including the centroid markings. Figure 8 is a block diagram illustrating an example of process 800 for determining attitude indications based on the estimation of angular velocities, in accordance with embodiments of this disclosure. The star tracker 802 on board satellite 804 can capture one or more subsequent frames. Using information from frame 806, the star tracker 802 can estimate an attitude qB / N1 associated with frame 806. The attitude can be estimated using various methods, including hypothesis-testing processes, which are explained in more detail throughout the detailed description. After capturing the subsequent frame 808, the star tracker 802 can estimate, from information from frame 806, for which the attitude and capture time are known, and frame 808, for which the attitude and capture time are also known, the angular velocity 1 of satellite 804 at the time of capturing frame 808.When star tracker 802 captures a subsequent frame 810, it can estimate the attitude of satellite 804 when it captures frame 810, based on the estimated angular velocity ω. In other words, if satellite 804 was moving with an angular velocity ω when it captured frame 808, it can be assumed that the satellite was still moving with the same angular velocity ω when it captured frame 810. This method can be used when the angular velocity can be assumed to remain approximately constant, with no or very little acceleration. This can occur, for example, when images are captured with a short time interval between them, and / or when the satellite does not change attitude rapidly.That is, based on the attitude qB / N1 of satellite 804 in frame 806 and the attitude qB / N2 of satellite 804 in frame 808, satellite 804 has the estimated attitude when it captures frame 810. Therefore, the angular velocity 1 can be used to obtain an indication of the attitude. In an alternative approach, if the angular velocity is not assumed to be constant between frames, the attitude can be determined from the acceleration instead of the angular velocity. In this approach, to obtain further indications of the attitude, the angular velocity of the nearest preceding frames must be determined. For example, to estimate the attitude of frame 812, if the angular velocity is not assumed to be constant, it is necessary to estimate the angular velocity 2 of satellite 804 at the time of capturing frame 810.Thus, as explained elsewhere in the detailed description, the matching process can be enhanced using the estimated attitude, allowing the matching module 216 to access the star catalog and project, via the imaging sensor, the positions of stars where they can be found according to the estimated attitude. By doing so, the matching module can search for matches between stars and centroid candidates in the projected regions of the star catalog, instead of searching in other regions where stars are certain to be absent. Furthermore, using the information about the stars contained in the catalog prevents other objects, such as satellites, from being mistaken for stars.Furthermore, the attitude determination method can be faster if an attitude indication is used to start searching in a part of the catalog and project it onto the sensor or camera to know where the stars may be, instead of first capturing an image and then searching the entire catalog to find a match. Conclusion The subject matter described herein can be implemented in systems, apparatus, methods, and / or articles, depending on the desired configuration. Although the disclosure uses specific language to refer to structural features and / or methodological acts, the disclosure of the systems, methods, and devices described herein is not limited to the specific features or actions described. Instead, the specific features and actions are disclosed as illustrative examples of the application of the subject matter described herein. The implementations set forth in the preceding description do not represent all possible implementations of the subject matter described herein. Rather, they are simply some examples consistent with aspects related to the subject matter described.Although some variations have been described in detail above, other modifications or additions are possible within the scope of the present invention, as defined in the appended claims.
Claims
1. An imaging system (200) for attitude determination, the imaging system comprising: one or more imaging sensors (204) comprising a plurality of pixel sensors and configured to capture at least one image having a plurality of pixels; and one or more processors (206) configured to: instruct the one or more imaging sensors (204) to capture the at least one image having a plurality of pixels; filter the at least one image, based at least in part on statistical techniques, to detect one or more centroid candidates,by filtering some or all of the pixels from the plurality of pixels of at least one image based at least in part on a hypothesis test; wherein the hypothesis test comprises calculating statistical values in a window of the at least one image to test one or more hypotheses to determine the one or more centroid candidates, the window having a size of one or more pixels, and determining whether a likelihood metric is greater than, equal to, or less than a threshold value; identifying, based at least in part on the one or more centroid candidates, one or more stars; generating a mapping between the one or more stars and the one or more centroid candidates; and estimating attitude, based on the mapping; characterized in that a first threshold value is determined using prior probabilities of the plausible positions of the first centroid candidates from among the one or more centroid candidates,and a second threshold value is determined as a fixed threshold value to determine the plausible positions of the second centroid candidates from among the one or more centroid candidates.
2. The imaging system according to claim 1, wherein the one or more processors (206) are configured to move the window over the at least one image to calculate the statistical values in all pixels of the at least one image or in one or more selected subregions of the at least one image, and wherein preferably the one or more processors are configured to move the window over the at least one image from a first position to a second position, pixel by pixel, such that the relative displacement from the first position to the second position is the size of one pixel or a multiple thereof,and that the one or more pixels of the window in the first position overlap at least by one pixel with the pixels of the window in the second position.
3. The image acquisition system according to claim 1 or 2, wherein, for calculating the statistical values, the one or more processors are further configured to perform at least one of the following: calculating the likelihood of a hypothesis occurring, or calculating the likelihood metric, wherein the calculation of the likelihood metric comprises weighting or relating the likelihood of two or more hypotheses occurring.
4. The image acquisition system according to claim 3,wherein the calculation of the likelihood of the hypothesis occurring comprises: establishing a hypothesis model; estimating the statistical parameters of the hypothesis model based at least in part on a pixel parameter; and calculating the likelihood of the hypothesis occurring by using algorithms based on the hypothesis model.
5. The imaging system according to claim 4, wherein a first hypothesis is established as the null hypothesis and is modeled based on a statistical distribution; and a second hypothesis is established as the alternative hypothesis and is modeled based at least in part on a star characteristic including the star shape, number of stars, or star magnitude, wherein the statistical distribution preferably represents image noise and comprises at least one of a Gaussian distribution.a Poisson distribution or a statistical distribution modeling diffuse light; and wherein preferably a model of the second hypothesis comprises a combination of a function representing a star shape and a statistical distribution representing image noise; the function representing the star shape comprising at least one of a Gaussian bell curve, an saturated Gaussian bell curve, a sinc function, a square waveform, a rectangular waveform, a sawtooth waveform, or a triangular waveform.
6. The imaging system according to claim 5, wherein the one or more processors (206) are further configured to calculate the likelihood metric,comprising calculating a ratio between the likelihood of the second hypothesis occurring divided by the likelihood of the first hypothesis occurring.
7. The imaging system according to claim 1, wherein the fixed threshold value is determined based at least in part on a multiple of the standard noise value of some or all of the pixels in the at least one image, as a statistical noise estimate, or as a local noise estimate determined on the fly.
8. The imaging system according to claim 1, wherein the first threshold value is determined based at least in part on a Bayesian interpretation associated with the probability metric,and wherein the probability metric calculation comprises calculating a ratio between two prior probabilities associated with the presence of a centroid candidate.
9. The imaging system according to any one of claims 2-8, wherein the one or more processors (206) are configured to determine the one or more subregions based at least in part on an indication, including an orientation indication or a centroid indication.
10. The imaging system according to claim 9, wherein the one or more processors (206) are further configured to determine the attitude indication, comprising: before capturing at least one image, capturing a plurality of subsequent images; determining, based at least in part on a first image and a second image from the plurality of subsequent images, a first-order angular velocity estimate; determining,based at least in part on a first-order angular velocity estimate, an attitude estimate associated with the at least one image, to obtain the attitude indication.
11. The imaging system according to any one of the preceding claims, wherein the imaging system is wholly or partly on board a mobile platform, including a manned or unmanned aerial, space, maritime, or land vehicle.
12. A method for determining the attitude of a vehicle, the method comprising: capturing at least one image; detecting one or more centroid candidates in the at least one image by filtering the at least one image based at least in part on statistical techniques,wherein the filtering comprises filtering some or all of the pixels from the plurality of pixels of the at least one image based at least in part on a hypothesis test; wherein the hypothesis test comprises calculating statistical values in a window of the at least one image to test one or more hypotheses to determine the one or more centroid candidates, the window having a size of one or more pixels, and determining whether a likelihood metric is greater than, equal to, or less than a threshold value; mapping the one or more centroid candidates to astronomical objects to obtain correspondences; determining, based on the correspondences, a transformation factor; and determining, based on the transformation factor, the attitude of the vehicle; characterized in that a first threshold value is determined using prior probabilities of the plausible positions of the first centroid candidates from among the one or more centroid candidates,and a second threshold value is determined as a fixed threshold value to determine the plausible positions of the second centroid candidates from among the one or more centroid candidates.
13. The method according to claim 12, further comprising at least one of removing background noise from the at least one image, grouping pixels from the at least one image to obtain clusters, and determining the cluster centroids to obtain centroid candidates.