On-Orbit Camera Misalignment Estimation Framework and Its Application to Earth Observation Satellite

: Despite the efforts for precise alignment of imaging sensors and attitude sensors before launch, the accuracy of pre-launch alignment is limited. The misalignment between attitude frame and camera frame is especially important as it is related to the localization error of the spacecraft, which is one of the essential factors of satellite image quality. In this paper, a framework for camera misalignment estimation is presented with its application to a high-resolution earth-observation satellite—Deimos-2. The framework intends to provide a solution for estimation and correction of the camera misalignment of a spacecraft, covering image acquisition planning to mathematical solution of camera misalignment. Considerations for effective image acquisition planning to obtain reliable results are discussed, followed by a detailed description on a practical method for extracting many GCPs automatically using reference ortho-photos. Patterns of localization errors that commonly occur due to the camera misalignment are also investigated. A mathematical model for camera misalignment estimation is described comprehensively. The results of simulation experiments showing the validity and accuracy of the misalignment estimation model are provided. The proposed framework was applied to Deimos-2. The real-world data and results from Deimos-2 are presented.


Introduction
The alignments of sensors and actuators inside a spacecraft are measured carefully in laboratory before launch. The alignment between the attitude frame and the camera frame is called boresight alignment [1]. Since it is essential for the quality of earth-observation satellites [2], several studies have already developed various methods for the precise alignment in laboratory [3][4][5].
A common approach for on-orbit boresight alignment calibration is based on the usage of ground control points (GCPs) and a physical sensor model. Breton and Bouillon used multiple GCPs and a physical model of the spacecraft to estimate the alignment of SPOT-5 [7,8]. Radhadevi also used a similar approach for IRS-P6 [6] which requires as many data samples as possible in order to obtain reliable results. However, the number of GCPs hardly exceeded hundreds because their GCPs relied on spots or landmarks prepared beforehand [6][7][8][9][10][11].
Some researchers tried an automatic GCP extraction technique using reference ortho-photos and image-based feature matching to get a much higher number of GCPs [12][13][14]21,22]. Robertson et al. even included the automated GCP extraction step to RapidEye's ground processing chain for alignment calibration [14]. However, the alignment was calculated for individual images, and the system's alignment was simply taken from the average of individual measurements. This approach can cause biased measurement in case that GCPs are distributed unevenly in an image. It is also unable to consider different alignment characteristics of attitude sensors. Müller et al. proposed a processing chain for automated geo-referencing that includes automatic GCP extraction and sensor model improvement [21]. They successfully geo-referenced thousands of images from SPOT-4, SPOT-5, and IRS-P6 using automatically extracted GCPs. However, their study used thousands of images that were already taken, and they did not cover the considerations for effective on-orbit calibration. Klančar et al. suggested an image-based attitude control mechanism that correlates the spacecraft camera image and the reference image on the fly [22]. Although this approach eliminates the need of measuring the boresight alignment, it is impractical due to the limited on-board resource to have a high-resolution GCP database on-board and perform the real-time feature matching.
Several interesting approaches were proposed for Pleiades-HR, such as single-track reverse imaging and star imaging, as well as the GCP method [16][17][18]. The single-track reverse imaging method, which is called auto-reverse, utilizes the spacecraft's high agility to rotate the spacecraft 180 degrees after imaging and to take a second image of the same spot [16]. This method looks quite promising and has several strengths over the GCP method. However, it is only applicable to high performance satellites such as Pleiades-HR. The star-imaging method is an operationally efficient method which could be performed during the eclipse period without interfering daylight imaging operation [17]. It is, however, still in a conceptual stage and not developed yet for practical applications. It also has a potential risk to measure different or unwanted error, as space imaging is different from ground imaging. Despite the proposal of new calibration methods, the baseline method for alignment calibration of Pleiades-HR was the GCP-based method [18] which used only 20 GCPs on average per site from 20 spots across the world.
The latest research on alignment calibration concerns reports on ZY1-02C [19,20]. Wang et al. provided a well-written explanation of the interior and exterior orientation error determination and an estimation model that uses many GCPs extracted from an ortho-photo [19]. Although it is essential to use multiple images to estimate misalignment from noisy data, they used a single image for estimation in the experiment. The acquisition planning to build proper estimation dataset is also important as the coverage of spacecraft attitude and attitude sensors affect the accuracy and robustness of the estimation; however, they did not consider this aspect. Jiang et al. tried to correct dynamic attitude error by correlating overlapped CCD images [20]. In their article, the GCPs were collected from ortho-photo manually, which led them to a small number of available GCPs for experiment.
Camera misalignment is the misalignment between the attitude frame and the true camera frame. The camera frame is calculated from the spacecraft attitude and pre-launch alignment measurement data, whereas the true camera frame is where the boresight vector is actually pointing. The static error between those two frames is observed as if the spacecraft has a biased error on its attitude. The boresight alignment calibration could be done by finding the camera misalignment and compensating it from the spacecraft attitude.
In this paper, a framework for on-orbit camera misalignment estimation of earth-observation satellites is presented. It provides an all-in-one solution from the planning of ground-target image acquisition to the estimation of the camera misalignment. Some of the important aspects when choosing the calibration targets are discussed, as well as the distribution of tilt angles and sensor selections for effective calibration. A proven robust automatic approach for the extraction of many GCPs from ortho-photos is explained in detail. Investigating the pattern of localization errors of GCPs is essential. Sometimes misalignments of attitude sensors are not the same, generating different error patterns depending on which set of attitude sensors were used. The images must be grouped by parameters showing similar error patterns (e.g., sensors, imaging modes, target locations), and the bias must be estimated separately for each group. The mathematical model, which was derived from colinearity to solve the camera misalignment, is explained comprehensively. Simulation tests with sophisticated simulation setup are conducted to prove validity of the framework. Finally, the application results to the Deimos-2 camera misalignment estimation during the initial commissioning phase are presented to show the effectiveness of the proposed framework.
In Section 2, the overview of the camera misalignment estimation is described, followed by the necessary background knowledge using Deimos-2 as an example. The steps of camera misalignment estimation such as image planning, automated GCP extraction, localization error pattern analysis, and the mathematical model for camera misalignment estimation are also explained. Section 3 describes the results of the experiments to evaluate the proposed framework. The accuracy of the mathematical model was evaluated using simulation data. The results of the application to Deimos-2 are demonstrated as well. In Section 4, the summary of the work is presented.

Overview
Conceptually, the estimation process of camera misalignment consists of four major steps. The first step is planning the satellite's imaging operation to acquire image data for the camera misalignment estimation. Extracting GCPs from the images is the next step. Analyzing the error pattern of GCPs and confirming the existence of misalignment are followed. The last step is to estimate the camera misalignment using the GCPs and spacecraft ancillary, which contains spacecraft position and attitude data. Figure 1 shows the conceptual process of the camera misalignment estimation. Whereas the simple four steps are provided from a conceptual view, the structural view of camera misalignment estimation involves a couple of additional steps as illustrated in Figure 2.
After planning imaging scenarios for calibration, the image collection planning system (ICPS) uploads the plans to the spacecraft (1). After the spacecraft takes images, the images are downloaded to the ground station from the spacecraft (2); thereafter, the image receiving and processing system (IRPS) generates ortho-image products, which consist of geometrically corrected images and spacecraft ancillary data (3). AutoGCP software correlates the images with a reference ortho-photo database and generates GCPs and sensor vectors (4). Camera Misalignment Estimator estimates the camera misalignment by using the results of AutoGCP and spacecraft ancillary data (5). The estimated camera misalignment is then set to IRPS in order to adjust the sensor model (6).
It is recommended to iterate the process (3)-(6) at least a couple of times, because large camera misalignment can make the IRPS use a wrong location for the DEM for geometric correction, which influences the accuracy of the calculated geo-location. Therefore, the camera misalignment needs to be re-estimated after applying the misalignment estimate. The iteration may stop when the change of misalignment estimate is less than the desired accuracy.

Camera Misalignment Estimation
Localization Error Pattern Analysis using GCPs Automatic GCP Extraction using Reference Ortho-photo Image Acquisition Planning for Calibration Figure 2. Structural process of camera misalignment estimation.

Background: Deimos-2
The proposed framework was applied to Deimos-2 which is a high-resolution earth observation satellite equipped with push-broom type CCD sensors providing 1.0 m resolution panchromatic band (PAN) and 4.0 m resolution multispectral band images (blue, green, red, and near-infrared) with 12 km swath width. Since the estimation is done using attitude measurement and image GCPs, it is important to understand the target system's camera geometry, attitude determination mechanism, and the definitions of attitude and camera frames.

Attitude Sensors
Deimos-2 has two star-trackers for absolute attitude sensing, as well as four gyroscopes for relative attitude sensing. Figure 3 illustrates the exterior configuration of Deimos-2. The red cones are the field-of-view of star-trackers. The gyroscopes are internally equipped. Because the star-trackers are embedded at the opposite side to each other, one of or both star-trackers are selected for the absolute attitude sensing depending on the position and attitude of the satellite during imaging. The electro-optical camera, which is the main payload of Deimos-2, is at the opposite side of the solar panels.   Figure 4 shows the relationship of sensors/actuators and the optical cubes. The sensors and actuators for attitude determination and control are aligned by using optical cubes (OC) before launch. Optical cubes are used as a reference object for precision alignment in satellite manufacturing. The components that need inter-alignment such as imaging sensors and attitude sensors have their own optical cubes that are carefully aligned with them. The alignment between optical cubes are precisely measured using theodolites. Although pre-launch measurement was done for some components, the alignment needs to be calibrated after launch due to launch shock, outgassing, zero-gravity, thermal effect, etc. The alignment between the star-trackers and their optical cubes were unknown due to difficulty in ground measurement. The measurement of angles between optical cubes is used to build a rotation matrix that converts a vector of one component's frame to the vector of another component's frame. For Deimos-2, the attitude data in spacecraft ancillary which IRPS uses is based on Camera OC frame, which is also known as Attitude frame. The attitude measured using star-trackers is converted to Camera OC frame. The camera misalignment estimation that described in this paper estimates the discrepancy between this attitude and the GCPs acquired from the image that is in the unknown Camera frame. Hence, the combined error between the attitude sensor and the camera is estimated. The alignments between sensors/actuators and optical cubes are calibrated after launch by space-level calibration. Space-level calibration is a series of operations performed during early operation phase, which consists of attitude calibration maneuver and stellar imaging for alignment calibration. Figure 5 shows the sensor geometry of Deimos-2 camera system. The alignment of the camera system is aligned with the spacecraft body using the Camera OC (Optical Cube) A. The alignment between the coordinates system of Camera OC A, CScube, and the coordinates system of the camera focal plane, CSdet, is measured before launch. Two focal plane assemblies (FPA1, FPA2) are aligned to have ground footprints perpendicular to the flight direction with a small overlap (100 panchromatic pixels). The linear TDI CCD arrays are positioned with the order of panchromatic, blue, green, red, and near-infrared in along-track direction. The 6115-th pixel in panchromatic FPA2 is the reference detector that defines the origin and Z-axis direction of the camera frame, which is CSdet.

Reference Frames
In this section, the reference frames (a.k.a. reference coordinate systems) used in this paper are defined in detail. For well-known frames such as Earth-centered inertial (ECI) and earth-centered earth-fixed (ECEF), J2000 and WGS-84 are used respectively. The definitions of the Deimos-2 attitude frame and camera frame are presented in Table 1.
The attitude frame is the basis of attitude information in spacecraft ancillary data. It is defined by Camera OC in Deimos-2 as shown in Figure 4. Note that the definitions of the camera system and attitude reference system in Table 1 are the same for Deimos-2. Other spacecrafts may employ different definitions, requiring a rotation matrix to calculate the camera frame from a spacecraft attitude. It is represented by the rotation matrix R and its inverse R in this paper. They are identity matrices for Deimos-2. Longitudinal direction of linear CCD (along with Geometric Y axis direction) The camera frame is used by sensor vectors, which point at the corresponding detector cells. IRPS and AutoGCP use sensor vectors to convert image coordinates to geographic coordinates and vice versa.

Image Planning
The first step is planning imaging scenarios for camera misalignment estimation. It is important to cover all of the possible imaging scenarios that can occur during normal operation. The criteria that needs to be considered for a reliable and accurate estimation are as below.
• Tilt angle coverage • Attitude sensor coverage • Global coverage • Terrain variation • Visual distinctiveness Tilt angle coverage: The image dataset for camera misalignment estimation needs to use various tilt angles that the spacecraft provides to get a reliable estimation result.
Attitude sensor coverage: If the spacecraft has multiple attitude sensors, those sensors are likely to have different misalignment toward the attitude frame. Since the attitude misalignment also introduces localization error like the camera misalignment, the estimation of the camera misalignment is influenced by the misalignment of attitude sensors. Therefore, the camera misalignment needs to be estimated separately for each sensor group. Deimos-2 is equipped with two star-trackers, and one or both of them are selected depending on the position and attitude of the spacecraft at the time of imaging.
Global coverage: Ground targets needs to be distributed all over the world covering all longitude and latitude ranges. It is not only beneficial for obtaining reliable results, but it can also show a possible relationship between the localization error and the location of a target.
Terrain variation: For the characteristics of ground targets, flat terrain is preferred in order to avoid possible discrepancy of digital elevation model (DEM) and real terrain.
Visual distinctiveness: Area with many visual features are also preferred. However, downtown areas with sky-scrappers are not recommended as tall buildings may add additional localization error, especially at a high tilt angle.

Automated GCP Extraction
The process of the camera misalignment estimation requires the comparison of the calculated localization with the true localization for GCPs in the images. However, it is exhausting work to obtain a large number of GCPs from many images manually.
Automated GCP extraction software generates GCPs from a geo-coded ortho-image and the corresponding reference dataset and measures the localization error between them. The reference dataset could be geo-coded ortho-rectified images such as LandSat-5 imagery or publicly available satellite imagery service such as Google Maps™. Figure 6 illustrates the process of the automated GCP extraction. The first step is to generate a reference image mosaic. The search region is determined by the geo-location information embedded in the input image. The input image before the camera misalignment correction can be located at a different place from the actual location. In order to cover all possible areas, the search region is set to an expansion of the original input image boundary by a certain ratio. A reference mosaic image for the search region is then generated from the reference image database.
In order to extract image features from the input image, GFTT (Good Feature To Track) feature detector in OpenCV, which is based on Shi and Tomoshi's method [23], is used for corner detection. To ensure features are distributed all over the image, the minimum distance between features is enforced as follows, where is the maximum number of features to be extracted, and ℎ are image width and height, α is a flexibility parameter which is decided empirically to be 0.5.
The corresponding features in the reference mosaic are found by using a Template Matching method. A comparison region, which is as large as the input image boundary, is chosen from the search region. The features in the input image are searched from the comparison region. Finding the related features within a comparison region reduces the chance of false matches, in comparison to searching in the whole search region. Normalized cross-correlation metric is used as a similarity measure. Each feature of the

Calculate localization error and sensor vector
Find matches in reference mosaic

Extract features from input image
Generate reference mosaic input image is searched within the comparison region for the similar feature by template matching. The size of search window for template matching is large (e.g., 150 pixels), and the search offset for matching is (0, 0) at the beginning. They are optimized as the number of matches increases as follows, where the offset error is the difference between the input image feature and the comparison region feature .
is the total number of features. The search offset is the median of offset errors of matches, eliminating outliers. The search window size is the standard deviation of median-centered offset times margin factor β. In this paper, 3.0 is used for β.
When the searching for matches is completed, a homography matrix is estimated by using RANSAC method, so that the outliers are filtered out and inliers are reprojected. The comparison region is moved to another location within the search region to find better matches. The simulated annealing method was used to choose the next location of the comparison region. It chooses a random location at first, but it reduces its randomness as the iteration goes on, so that it can search near the last successful region. The iteration stops when the number of matches is the same as that of the last iteration. Figure 7 shows an example of feature matching results. Since the reference mosaic image is geo-referenced, the input image coordinates and the corresponding true geographic locations for each matched pair can be extracted, as well as the localization error of each pair. In order to use GCPs for camera misalignment estimation, the image coordinates need to be converted to sensor vectors.
A sensor vector is a unit direction vector in the camera frame pointing to the detector cell that corresponds with the image coordinates. In order to get a sensor vector from the image coordinates of the input image, the physical camera model that generated the input image performs the inverse mapping.
For each GCP, its IRPS-calculated geo-location, which differs from the true geo-location, could be re-projected onto the focal plane using the spacecraft position and attitude. Since, it is a push-broom sensor, it is not straightforward because the spacecraft takes an image over a certain period. The position and attitude of the moment that the GCP was imaged are necessary for re-projection, however, the time of that moment is unknown. In order to find the time t, an iterative method is used. Firstly, the center time of the imaging duration is used as the initial value of t, and the position and attitude of it is used for re-projection. The re-projected point on the focal plane shall not fall on the sensor because the position and attitude of the wrong time were used. The flight-direction distance between the sensor and the re-projected point is converted to time, and update t with it to move the point to the sensor. The ground point is re-projected with the position and attitude of the new time t. It requires a few iterations until the re-projected point falls on a detector cell. When the point is pointing a detector of the sensor, the vector pointing the re-projected point from the origin of the camera frame is the sensor vector of the GCP. Leprince et al. [24] presented a similar inverse mapping algorithm, however, our approach provide less time-complexity as it uses only one inverse mapping per iteration while theirs require two forward mappings per iteration to use the gradient minimization method.
The results of this process (i.e., GCP geo-location, sensor vector, time t, localization error of GCPs) are stored for camera misalignment estimation. Figures 8 and 9 show the output of AutoGCP software, which performs the work described in this section. The localization error ε of each GCP is calculated as follows, where is the UTM coordinate calculated by IRPS using the spacecraft ancillary, and is the UTM coordinate of the reference image. An important coordinates system for localization error analysis is spacecraft across/along-track coordinates system, which is defined by increasing column/line number direction. The analysis of localization errors in across/along-track direction makes it possible to analyze the errors in comparison with other imaging parameters such as tilt angles and target locations. Since the reference image and input ortho-image are generally in UTM projection, the localization error in UTM projection could be easily calculated. The conversion to spacecraft across/along-track direction from UTM X/Y direction could be done using the flight direction vector. Figure 10 shows the comparison of UTM X/Y direction and spacecraft across/along-track direction. Note that the along-track (+) direction is defined as the opposite of the flight direction in this paper, even though it is customary to set them to the same direction.

Error Pattern Analysis
Analyzing the pattern of localization error helps to find the existence of camera misalignment as well as other issues such as time drift. The estimation and correction of camera misalignment is meaningful when there is an obvious pattern of camera misalignment. It also is useful to know what type and amount of camera misalignment are there before estimation.
If a camera misalignment exists, a correlation between the tilt angle and localization error can be observed. Figure 11 shows the plots of localization error on various camera misalignments. Note that changing the sign of the misalignment will create localization errors of the opposite sign. Whilst roll and pitch biases display distinct patterns, yaw bias does not show a strong pattern in Figure 11d. It is because the yaw angle of the camera misalignment has small effect in localization error. The localization error ε that is generated by the yaw error at the end of the CCD array can be calculated as follows, where ϑ is the yaw-bias in radian, is the CCD array length, and D is the pixel GSD. Because of its relatively small error even with high tilt angles, it is difficult to estimate the yaw bias.
Sometimes, the ancillary data, which contains position and attitude, can have time offset or drift error. If time offset exists, along-track error has an offset as depicted in Figure 11i-l. In this case, it is difficult to relate to one of the biases in Figure 11b-h. In case of time drift, it should be corrected before estimating the camera misalignment. Since there are many sources that can cause time drift phenomena, the estimation of time drift is not discussed in this paper.
Another major source of localization error that can be confused with camera misalignment is attitude misalignment. The misalignment in the attitude frame affects the control and determination of the spacecraft attitude, resulting localization errors. Figure 12 shows the plots of localization error on various attitude misalignments. While the localization error induced by the yaw bias in the camera frame is hardly observable due to narrow field of view as shown in Figure 11d, it is clearly visible in Figure 12c that the yaw bias in the attitude frame generates large error as the tilt-angle increases. There are many other error sources of localization error such as star-trackers, gyroscopes, focal plane assemblies, sensor arrays, or somewhere between them. Only the sum of all misalignments from the attitude sensors to the camera image plane could be observed from image GCPs and attitude data. It is important to categorize datasets that can have different misalignment for effective analysis. In Section 3.2, Since Deimos-2 has two star-trackers and they are selected depending on the spacecraft attitude, its localization errors were analyzed for star-tracker selections.
In case that localization errors and tilt angles cannot be correlated, the cause of error may not be camera misalignment. They can be sensor malfunctioning, on-board software errors, or inconsistency of ancillary data. It is also recommended to analyze the relationship between the localization errors and target locations (longitude, latitude). Depending on the thermo-elastic characteristics of the spacecraft or the orbit design, the location of the target can affect the localization error.

Camera Misalignment Estimation
This section describes a mathematical model for camera misalignment estimation. The model describes the relationship between spacecraft position, attitude, sensor vector, and GCP. The key idea of the proposed estimation model is to calculate the boresight misalignment, which is the angular error between the camera frame and the true camera frame, using GCPs and spacecraft positions/attitudes. In order to simplify the problem, the origins of the attitude frame and the camera frame are assumed to be the same.
Assuming that there is no camera misalignment, the geometrical relationship can be modelled as follows: where, is a sensor vector, which is a unit vector of the vector , which points the detector pixel on the focal plane at which a GCP is located. and are rotation matrices from attitude frame to camera frame, and from ECI frame to attitude frame, respectively, at time . is an object vector in ECI frame pointing the GCP from the spacecraft.
is a position vector of ground object G in ECI frame.
is a position vector of spacecraft in ECI frame at time . Since the geo-locations of GCPs are generally in LLH or ECEF, it is important to convert the coordinate system to ECI to get . In order to take account for the camera misalignment, a bias-correction matrix is added: In practice, the amount of misalignment is less than one degree (i.e., 3600 arcsec). Therefore, an approximation for infinitesimal rotations can be used to solve Equation (7). Supposed that the misalignment is an Euler-angle rotation ϑ , where ϑ , ϑ , ϑ are roll, pitch, yaw bias respectively, it can be approximated as follows [25,26]: The error of the small angle approximation of sine and cosine function is less than 1% for angles smaller than 14 degrees (≈50,000 arcsec).
In consequence, the equation for a sensor vector and a unit object vector in the Equation (7) can be expanded as below.
Equation (13) can be rewritten as follows, which forms a normal equation for linear least squares (Ax = b): In addition to the Equation (14), a weight matrix is introduced to adjust weight of each observation and to force pre-defined bias to certain axes as below: where the weight matrix is defined as: … sets the weight for each observation in accordance with the accuracy of observation. In case that every observation has the same accuracy, the weight is set to 1.0. However, it can also be set to a certain weight calculated from the accuracy of observation, such as the geo-accuracy of a GCP, sensor vector, and position/attitude knowledge. and could be used to set the bias of some axes to given values. is a parameter for choosing whether the pre-assigned bias will be enforced or not. Setting the element of to a very small number (e.g., 10 −1°) forces the assigned angle in to be the bias of the given axis, whereas setting it to a very large number (e.g., 10 1°) means is ignored. It is useful when the visibility of a certain axis is expected to be very low due to narrow field of view; for instance, the yaw axis of high-resolution push-broom imaging sensors.
Solving Equation (15) gives a least squares solution of , which contains estimated camera misalignment angles in radian. In order to compensate the camera misalignment during ortho-image generation, the alignment of camera frame from attitude frame needs to be updated using ϑ . The new rotation matrix ′ is calculated as follows, where (ϑ ) is a direction cosine matrix for ϑ , and is the original rotation matrix. The order of rotations is irrelevant for infinitesimal angles [25,26].

Data
The objectives of simulation tests are to prove the validity of the estimation model and obtain expected accuracy before the application to real image data. The test environment was set up as illustrated in Figure 13. Three additional components were used to simulate an actual spacecraft, compared to Figure 2. Satellite Simulator simulated the spacecraft system in space environment. It ran the same on-board software emulating all the position/attitude sensors and actuators of Deimos-2. As it complied the design specification of Deimos-2 hardware, it could simulate realistic behavior of a spacecraft on orbit. Image Simulator generated simulated imagery taken by the simulated spacecraft. It also generated sensor vectors and their corresponding geo-locations, which were the output of AutoGCP. Noise Simulator added noise to orbit data, sensor vectors, and geo-locations for realistic simulation. Table 2 shows the categories of the experiments. The first category is the no noise category, which verifies if the proposed estimation model is capable of estimating camera misalignment in ideal cases. The second category is the noise category, which provides the estimated accuracy for real cases.   Table 3 shows the results of the no noise category. The error of estimation model was up to 0.054 arcsec for all test cases. As 1 arcsec error corresponds to approximately 3.3 m on ground, it is proven that the model provides sub-meter accuracy for ideal cases. The error of 0.054 arcsec residual under zero noise seems like numerical error, since 0.01 arcsec is 2.61799398e −7 radian.  Table 4 shows the results of noise category. The errors were around 30 arcsec in roll and pitch biases and around 400 arcsec in yaw bias. In comparison with the sensor accuracy in Table 2, which is 360-432 arcsec, the accuracy of the roll/pitch biases estimation is better than the hardware specification. Given that the attitude error is mainly made of bias and random error, the influence of sensor's random error in camera misalignment estimation is reduced as more and more data samples are used. However, the yaw bias might still be difficult to estimate accurately, because of the narrow field-of-view of a high-resolution push-broom type sensor. It is not problematic in practice, because it also means that the influence of the yaw bias in the camera frame is relatively low. In case that the observability of yaw bias is expected to be low, the estimation model could be set to fixate the yaw bias to zero. Table 5 shows there was no noticeable change in the accuracy of roll and pitch bias when the yaw bias was not estimated. In conclusion, the estimation model is capable of estimating the camera misalignment to sub-meter accuracy under ideal conditions. With realistic simulation data, the estimation accuracy is better than the accuracy of hardware while the yaw estimation does not affect the overall accuracy much.

Data
The estimation framework presented in this paper was applied to Deimos-2 to measure and correct its camera misalignment. It began with listing up candidate targets in the world. Figure 14 shows the distribution of the ground target images used in the experiments.
The targets were focused on populated area containing rich features to obtain enough number of GCPs. The colors of markers (red, green, blue) in the figure represent which star-tracker was selected for on-board attitude determination. Deimos-2 has three star-tracker selection modes (STS 1, STS 2, STS Both) and the figure shows that all selections are included for the test images. Note that the selection is based generally on the location of the ground target as shown in the figure as well as the off-nadir tilt angle. In order to investigate the difference between imaging modes, the images were taken in two imaging modes; Strip and Fast Multi-strip (FMS). In Strip mode, the spacecraft returns to house-keeping mode after imaging, whereas in FMS mode, it performs a maneuver and takes successive images before returning to house-keeping mode. Table 6 shows the number of images collected for camera misalignment estimation.  Figure 15a shows the distribution of imaging dates. The images were taken over a two-week period. There are gaps at 10 and 14 July 2014 because the spacecraft was dedicated to other priority tasks. Figure 15b shows the distribution of roll-tilt angles. The images cover all of the roll angle range that Deimos-2 is capable. The pitch angle and yaw angle were all set to zero, since Deimos-2 does not provide pitch and yaw tilt in Strip and FMS imaging mode.
The images were processed to ortho-image products after download. The SRTM DEM which has 90 m accuracy was used for geometric rectification. AutoGCP software extracted GCPs and the corresponding sensor vectors from the ortho-images, and calculated the localization errors. The spatial resolution of reference mosaic for GCP extraction was set to 15 m, which corresponds to the geo-location accuracy of resulting GCPs, accounting for the accuracy of Deimos-2 attitude sensors.
where is the number of images, is the mean across-track and mean along-track error of i-th image. The mean error shows how much the localization errors of the images are biased, while the standard deviation represents the variance of localization errors of different images.
The localization error is presented in Table 7. For both Strip and FMS modes, the mean error was significantly larger than the standard deviation of error. As camera misalignment causes biased error, it is assumable that there was a camera misalignment. There was no significant difference for the mean errors between imaging modes, meaning that it was unnecessary to estimate the camera misalignment for each imaging mode separately.   Figure 16 shows the localization errors for different star-tracker selections. The X-axis is roll-tilt angles and the Y-axis is mean across-track error and mean along-track error. The observation of the localization errors between star-trackers separately led to a conclusion that the error pattern showed meaningful differences depending on the star-tracker selection. Therefore, it was necessary to estimate the camera misalignment for each star-tracker selection mode separately. The plots in Figure 16 also displays the patterns of roll bias and pitch bias shown in Figure 11.  Among 88 images, 41 unsuitable images were eliminated by the following criteria.
• Position/attitude/imaging sensors were not properly working • Number of GCPs is less than 200 • GCPs are located partially in the image • Localization error does not follows the trend of other images • Standard deviation of localization error within the image is high Since Deimos-2 was in the initial commissioning phase, the sensors had some functionality issues. Twenty-three images out of 88 images were dropped due to sensor malfunctioning. The standard deviation of the localization errors of GCPs which belong to one image contains various meanings. A higher standard deviation is, however, largely due to the high elevation variation within the imaged area. Although DEM was used for ortho-image generation, the inaccuracy of DEM degrades the estimation accuracy. In this experiment, the SRTM DEM that has 90 m special resolution was used. Table 8 shows the number of images and GCPs which were used for the camera misalignment estimation for each star-tracker selection mode. The camera misalignment was estimated for each star-tracker selection mode by using the corresponding GCPs and the satellite position and attitude data as described in Section 2.6. Because of the narrow field-of-view and limited accuracy of attitude knowledge of Deimos-2, the yaw bias estimation was excluded by setting the estimator to fixate the yaw misalignment to zero to avoid overfitting. The estimated misalignment was applied to the ground image processing software to regenerate all 88 ortho-image products by using the updated camera model. Table 9 shows the results of the camera misalignment estimation. The residual RMSE is about 1/5 of the original RMSE, showing that the localization errors could be well corrected by the estimated camera misalignment. The localization errors were recalculated using the reprocessed ortho-images in order to compare them to the original errors. Table 10 shows the improvement of the localization accuracy after applying the estimated camera misalignment. "All" rows in the STS Selection column shows the statistics calculated using all images; STS 1, STS 2, and STS Both.  Figure 17 illustrates the localization error of each image before and after applying the estimated camera misalignment, where X-axis is image index and Y-axis is across/along-track error. It can be seen that the bias of the localization errors was eliminated effectively by applying the estimated camera misalignment.   Table 11 summarizes the results of the proposed technique including the CE90 geo-location accuracy achieved by using the proposed framework. Considering that the geo-location accuracy of GCPs was 15 m, the bias of images was well compensated to the GCP's accuracy level. The residual localization error for each image is due to the inaccuracy of spacecraft position/attitude knowledge and the inaccuracy of DEM. Deimos-2 is a cost-effective high-resolution spacecraft that equips attitude sensors that are less accurate than those of IKONOS, WorldView-1, or Pleiades-1A/1B. It limits the accuracy of camera misalignment estimation as well as the localization accuracy after misalignment update.

Conclusions
This paper presented a framework for camera misalignment estimation and supporting results. The proposed framework consists of four steps: image planning, automated GCP extraction, error pattern analysis, and camera misalignment estimation.
A set of simulation experiments was performed to verify the validity of the proposed mathematical model. A satellite simulator and an image simulator were used for the generation of realistic simulation data. Various camera misalignment settings were simulated and compared with the estimation results. In this simulation experiments, it was proven that the proposed estimation model can achieve a sub-meter geo-location accuracy in ideal cases and respond to the characteristics of sensor noise specifications very well.
The application of the entire framework was demonstrated by using several tens of real image data covering all operational cases of the satellite in order to prove the feasibility of the proposed framework. The imaging planning decisions and the pattern analysis schemes in the proposed framework provided a guideline for the camera misalignment estimation activity during the initial commissioning period of a high-resolution satellite program. Hundreds of GCPs per image were extracted automatically for camera misalignment estimation. The estimated misalignment was applied to the ground image processor so that the localization error was reduced from 405.97 to 119.33 m in CE90.
The proposed framework is an effective and efficient method to estimate an accurate camera misalignment during a post-launch calibration and validation phase. As it provides precise and reliable measurements and estimation results, it may also reduce the efforts to pre-launch calibration activities. Although this paper focused on the camera misalignment estimation, the presented ideas can be applied to a wide range of applications. The presented GCP extraction algorithm provides many GCPs automatically which can be used for the calibration of other parameters such as focal length, line rate, and image distortion. It can also be attached to the image processing chain to improve the geo-location accuracy of images through a systematic geo-correction using GCPs. The analysis of localization error patterns is useful to discover many other errors such as telemetry error, time drift, gyro scale factor error, and other hardware or software errors of the satellite.