meta data for this page
ICA – Independent Components Analysis
Independent Components Analysis (ICA) looks for statistical differences in multispectral data and separates the data into statistically independent sets. At times, this can reveal even more difficult-to-see text than PCA can, for example by separating underwriting from overtext or from the substrate.
ICA, PCA or MNF?
- PCA orders its components by variance; low-contrast text may be in the higher-numbered bands.
- MNF first whitens the data using a noise region; its bands tend to decrease in image quality.
- ICA tries to unmix independent sources, and can sometimes isolate different writings or materials better than PCA or MNF.
Two inputs
ICA has two inputs, both from the same multiband image (with at least two bands):
- roi_link: a region of interest. ICA computes the transform from this data, so read it with a “window” around the features you want to separate.
- input_link: the image the transform is applied to, usually the whole image.
The two images must have the same number of bands, but they can be different sizes. The region of interest cannot be larger than the input image.
Choosing a region of interest
- Pick a region that contains the features you hope to separate, for example underwriting and overtext.
- A larger region and more bands can make the result more stable, but take longer to compute.
- If the separation looks poor, try a slightly different region, or a different nonlinearity.
Arguments
| Argument | What it does | Default |
|---|---|---|
| nonlinearity | The contrast function ICA uses: logcosh, kurtosis or gaussian. They can give slightly different results that might reveal different characters | logcosh |
| iterations | The maximum number of iterations. ICA also stops early when the change to the transform falls below 0.00000001 | 200 |
| bandsOut | The number of output bands, M. Bands 0 to M-1 are output | as many as the input |
The larger the region of interest, the more bands, and the more iterations, the longer the computation takes.
Output
The output is floating point, with as many bands as the input unless you set bandsOut. The bands are ordered by decreasing spatial coherence: the average correlation of each pixel with its neighbors to the right and below. Since text has high spatial correlation, the lower-numbered bands tend to reveal text, both erased and visible. Higher-numbered bands often show finer texture or noise.
Hoku's ICA was implemented in Java from the 2018 MATLAB software written by Brian Moore, University of Michigan.