Cross Correlation

Cross Correlation Operator

The Cross Correlation operator is a component of coregistration . Image co-registration is an essential step for Interferometry SAR (InSAR) imaging. It aligns one or more secondary images with a reference image in such a way that the each pixel from the co-registered secondary image represents the same point on the Earth surface as its corresponding pixel in the reference image.

The co-registration is accomplished through two major processing steps: Cross Correlation and  WARP . In GCP selection, a set of uniformly spaced Ground Control Points (GCPs) in the reference image are generated first, then their corresponding GCPs in the secondary image are computed. In WARP processing step, these GCP pairs are used to construct a WARP distortion function, which establishes a map between pixels in the reference and secondary images. With the WARP function computed, the co-registered image is generated by mapping the secondary image pixels onto reference image.

This operator computes secondary GCPs by coarse registration or coarse and fine registrations depending on the input images are real or complex. For real input images, coarse registration is performed, while for complex images both coarse and fine registrations are performed. The fine registration uses the image coherence technique to further increase the precision of the GCPs.

Coarse Registration

   The coarse registration is achieved using a cross correlation operation between the images on a series of imagettes defined across the images. The major processing steps are listed as the follows:
  1. For a given reference GCP, find initial secondary GCP using geographical position information of GCP.
  2. Determine the imagettes surrounding the reference and secondary GCPs using user selected coarse registration window size.
  3. Compute new secondary GCP position by performing cross-correlation of the reference and secondary imagettes.
  4. If the row or column shift of the new secondary GCP from the previous position is no less than user selected GCP tolerance and the maximum number of iteration is not reached, then move the secondary imagette to the new GCP position and go back to step 3. Otherwise, save the new secondary GCP and stop.
   Those GCPs, for which the maximum number of iterations has been reached or its final GCP shift is still greater than the tolerance, are eliminated as invalid GCPs.

Fine Registration

  The additional fine registration for complex images is achieved by maximizing of the complex coherence between the images at a series of imagettes defined across the images. It is assumed the coarse registration has been performed before this operation. Some major processing steps are given below:
  1. For each given reference-secondary GCP pair, get complex imagettes surrounding the reference and secondary GCPs using user selected coarse registration window size.
  2. Compute initial coherence of the two imagettes.
  3. Start from the initial secondary GCP position, the best sub-pixel shift of secondary GCP is computed such that the secondary imagette at the new GCP position gives the maximum coherence with the reference imagette. Powell's method is used in the optimization [1].
   This processing step is optional for complex image co-registration and user can skip it by uncheckmarking the "Apply fine Registration" box in the dialog box.

Coherence Computation

   Given reference imagette I 1 and secondary imagette I 2 , there are two ways to compute the coherence of the two complex imagettes.

   User can select the method to use by  selecting radio button "Compute Coherence with Sliding Window".

Parameters Used

   The parameters used by the Operator are as follows:
  1. Number of GCPs: The total number of GCPs used for the co-registration.
  2. Coarse Registration Window Width: The window width for cross-correlation in coarse GCP selection. It must be power of 2.
  3. Coarse Registration Window Height: The window height for cross-correlation in coarse GCP selection. It must be power of 2.
  4. Row Interpolation Factor: The row upsampling factor used in cross correlation operation. It must be power of 2.
  5. Column Interpolation Factor: The column upsampling factor used in cross correlation operation. It must be power of 2.
  6. Max Iterations: The maximum number of iterations for computing coarse secondary GCP position.
  7. GCP Tolerance: The stopping criterion for secondary GCP selection.
  8. Apply fine Registration: Checkbox indicating applying fine registration for complex image co-registration.
  9. Coherence Window Size: The dimension of the sliding window used in coherence computation.
  10. Coherence Threshold: Only GCPs with coherence above this threshold will be used in co-registration.
  11. Fine Registration Window Width: The window width for coherence calculation in fine GCP selection. It must be power of 2.
  12. Fine Registration Window Height: The window height for coherence calculation in fine GCP selection. It must be power of 2.
  13. Compute Coherence with Sliding Window: If selected, sliding window with dimension given in 9 will be used in coherence computation. Otherwise, coherence will be computed directly from all pixel in the Fine Registration Window without using sliding window.


 

Reference: 

[1] William H. Press, Brian P. Flannery, Saul A. Teukolsky, Willaim T. Vetterling, Numerical Recipes in C: The Art of Scientific Computing, second eidition, 1992