Icarus Image VCA

Icarus Image VCA

Edward W. Leaver

16 April 2014, last update 19 September 2016

[Picture]

Figure 1: Ruby Mountain a.k.a. “West Red” as seen looking east from Enterprise Peak a.k.a Larson’s Mountain. “East Red” (Mount Blaurock) in background, upper right. Garfield Peak is the craggy highpoint to the left of Ruby. (August 2008)

Preface and Acknowledgement. Icarus Image and my own studies into hyperspectral image processing were inspired by David Coulter’s Remote Sensing Analysis of Alteration Mineralogy Associated with Natural Acid Drainage in the Grizzly Peak Caldera, Sawatch Range, Colorado, Colorado School of Mines doctoral dissertation, 2006. All aerial photography and imagery used herein were taken directly from Coulter’s dissertation, which represents a substantial effort on Coulter’s part organizing his acid-drainage study, conducting the ground mineralogical survey, and coordinating the remote-sensing overflights by the Jet Propulsion Laboratory’s AVIRIS aircraft and SpectIR Corporation’s HST instrument. My own desk-efforts in no way compare with David Coulter’s.

Introducing Hyperspectral End Member Matching

Figure (1) is a ground photograph of the target of this exercise. Ruby Mountain (or Red Mountain) and its “East Red” companion lie in the southwest part of Colorado’s Grizzly Caldera, an extensive volcanic feature fifteen miles southeast of Aspen. Ruby Mountain and mine are readily found on Google Earth.1 Photo was taken from Enterprise Peak, on the Sawatch Range separating Grizzly Caldera from Taylor Park. Foreground drainage is the southern end of Lincoln Gulch. The distinctive orange color is characteristic of Hematite (a.k.a. “rust”), the primary natural oxidation state of iron. But there are contributions from Goethite and Jarosite as well, which form when iron weathers under more acidic conditions. Coulter sought to map, by remote sensing imagery, the geographic distribution of these three iron oxides in the target area, and thereby characterize naturally occuring acid seeps.


[Picture]


Figure 2: Visible-IR spectrum of a 2.5mx2.5m pixel near the summit of West Red, together with spectra of optimal mixtures of the three principal iron oxide end-members.

Figure (2) represents a simple example of supervised end-member classification. In this case the supervisor (David Coulter) painstakingly took “ground-truth” samples from select locations in the target area, and identified Hematite, Goethite, and Jarosite as the end-members of interest. Spectrally pure endmembers were determined by mineralogical estimation of the selected surface rocks, and their spectra measured and recorded for later matching against many (possibly millions) such pixels in the hyperspectral images. The target pixel’s spectrum is shown in red, the spectrum resulting from the best fits of the three end members by least-squares fitting and by the OCCM algorithm are shown in blue and green respectively, with vertical offsets added for clarity. The lowest-most curve illustrates the goodness-of-fit (Pearson’s R = 0.998). The matching was done over two wavelength bands: 370-1100 nm, and 2000-2440 nm. The intervening 1100-2000 nm range is characterized by highly variable water absorbtion, and is frequently excluded from this sort of study. (Hence the figure’s flat plateau in this region.)

Introducing Icarus Image VCA: Vertex Component Analysis and Refinement

In contrast, Icarus Image is part of an ongoing project to investigate algorithms for unsupervised hyperspectral endmember classification, that is, how to identify and map chemical endmember spectra in an image in absence of local ground-truth sampling. Icarus Image’s Qt-based graphical interface serves as a flexible test platform, enabling rapid changes in program option editing and display. At this point (January 2016) the GUI is completely standalone, with ability to export image and signature files to Ball Aerospace’ Opticks GIS.

The VCA (Vertex Component Analysis) and OCCM (Optimized Cross-Correlation Matching) functionality is implemented in a separate library, for which there is a separate command-line driver. This allows rapid and scripted execution of simple cases for test and development, and batch processing when desired. The Qt GUI introduces flexibility into the command line’s otherwise linear control flow. It also enables convenient display of the input and output images. Separating the VCA physics libraries from the GUI software is a development convenience.

Icarus Image screenshots are illustrated in Figures (3) through (9):


[Picture] [Picture]


Figure 3: Icarus Image opens to a blank canvas. File menu allows selection of a program Options file and input images. The input image paths may themselves be set in the Options file, in which case the image file browser opens to those default paths. Others may still be selected.


[Picture] [Picture]


Figure 4: Open a USGS aerial photo of the Grizzly Caldera region, then zoom to the Ruby Mountain target.


[Picture] [Picture] [Picture]

Figure 5: Image overlay and (right) alpha blend where foreground alpha = 155/255

Open an AVIRIS (Airborne Visual and Infrared Imaging Spectrometer) hyperspectral image and enhance contrast. Then overlay its RGB components on the USGS background and adjust alpha channel to taste.



[Picture] [Picture]


Figure 6: Options Editor
Edit some VCA Options, and read the complete hyperspectral data for the selected subimage and wavelength intervals. Prior to this we had read only three RGB channels: the AVIRIS camera records 224 channels spanning the visible and infrared; a 1.2 megapixel by 224 band ENVI file runs about a gigabyte. After “Estimate Virtual Dimensionality” is run, three or four virtual dimension estimates are displayed in the Options Editor; editable spinners are provided to make an actual selection. You may then select ”Run VCA” to crunch the algorithm.

A simple image band selector is shown at right. Grayscale is provided for visualization of single bands. Color normalization can be either over the entire image (photogenically correct), or over individual bands, which affords simple enhancement of more weakly reflective bands. Linear and non-linear contrast enhancement have been added as aids to monochrome image co-registration.



[Picture]

Figure 7: Optimized Cross-Correlation Match result

The endmember map above was generated via the older OCCM algorithm, and the overlay image processed in Geographic Resources Analysis Support System (GRASS). As iron oxides were the target of David Coulter’s investigation, an NDVI of 0.15 was used to mask exposed soil and vegetation. Here the false colors represent reflectance contributions from iron minerals Hematite (red), Geothite (green), and Jarosite (blue) in the AVIRIS hyperspectral regions [374-1100] and [2000-2440] nm. Ground truth data for this image was laboriously field-sampled by Coulter for his 2006 CSM PhD dissertation poor guy. OCCM is a supervised algorithm, and while ground-truth is not a strict requirement, results are much easier to generate (and are more meaningful) if they are available.



[Picture] [Picture] [Picture]

Figure 8: Vertex Component Analysis result

In contrast VCA algorithm is unsupervised and should not require ground-truth to the same degree. However, strictly speaking VCA assumes each pure endmember spectrum is present at some pixel in the image, which is hardly ever the case. This restriction may be alleviated via iterative refinement, illustrated below. Above left is the raw Aviris full-visible spectrum image (SPIE-mapped to RGB) laid over the USGS aerial photo background. The VCA-processed image in the center ignores NDVI, vegetation and soil show as blue and purple. Above right, vegetation and soil pixels are masked with NDVI greater then 0.15; here Goethite and Jarosite show as blue.



[Picture] [Picture] [Picture]

Figure 9: VCA, Refined VCA, and PCA results

Grayscale has its merit. Zooming to the sub-region of interest, the first VCA band (left) compared with its refinement (center), shows noticeable sharpening as this vertex is pushed toward spectral purity. 124 AVIRIS bands between [374, 1100] and [2000, 2440] nm are included, ndvi is 0.15 with range parameters as indicated in Figure (6). Although not directly comparable, the first PCA band is included (far right) for direct comparison. Virtual dimensionality was suggested to be 32 by HFC, 85 by noise-whitened HFC, and 42 by noise-subspace projection. For simplicity we chose a virtual dimension of 6, and 24 total PCA channels.



[Picture] [Picture] [Picture]

Figure 10: Histograms illustrate how the number of outlying image pixels (those with negative pixel value) decreases as vertex refinement proceeds. 6 virtual dimensions, 24 channels. Histograms are displayed in Quantum GIS for the VCA (left) and Refined Vertex mixing matrices (center and right), illustrating the progress of the vertex refinement algorithm. Such histograms may be a useful aid in determining when refinement is “good enough”, and in the identification of outlying pixels. Not shown, but the geographical distribution of pixels spectrally nearest the vertices does not greatly change (if at all) as the refinement algorithm proceeds.


[Picture] [Picture] [Picture]

Figure 11: Lastly, from the ever-popular “any image worth processing is worth overprocessing” category, we have corresponding histograms of 64 virtual dimensions and 72 channels.

Spectroscopy

2015 efforts included refining the refinement algorithm, noting some limitations, and contemplating future modifications to avoid them. Some cpu-intensive portions were moved to custom Cuda kernels. GPU speedup, while not spectacular, is good enough to suggest other, more robust and constrained vertex optimization approaches are well within grasp.

Spectral matching has progressed with introduction of Ball Aerospace’s Opticks GIS. Experience with the earlier OCCM supervised matching algorithms afforded some insight into what an automated matching program might entail; I was relieved to find a robust open-source GIS that will largely fill my needs.

Opticks is written with specific focus on multi- and hyper- spectral image analysis, with underlying image data structure and file formats tailored to that purpose. Its Spectral Plugin will likely be adequate as-is, after convolulution of JPL/USGS spectral libraries to the resolution of AVIRIS and Worldview sensors.

A few days effort yielded a port to my local Fedora development environment. Some early results:


[Picture] [Picture]


Figure 12: False color Red Mountain and Ruby Mine area of interest displayed in Opticks GIS with three visible - near IR bands of 884, 675, and 548 nm as RGB. Erstwhile “green” vegetation reflects strongly in the near infrared, hence the strong red signal at lower elevations (far right) on the mountain’s east flank. VCA vertices are marked by yellow triangles.


[Picture] [Picture]


Figure 13: In contrast to the full VNIR Opticks images shown above, an NDVI index of 0.15 masked the vegetation prior to VCA processing and refinement in the 380 - 1100 nm region. The gravel roadways on the east (right) side were not vegetated and clearly stand out: here the roadways appear green against the white background. Of the 8 VCA vertexes considered, the sixth, second, and third were arbitrarily chosen as RGB for display purposes. There is a clear difference between the VCA (left) and its refinement.


[Picture] [Picture]


Figure 14: Just what that difference signifies is a matter of misinterpretation.
Here we show the spectra at two vertices for increasingly tight values of the refinement parameter α, as it varies from no refinement at VCA, to a minimum of 1e-05. The VCA spectra are boldly shown in black. These correspond to real reflectance signatures at real pixel locations, and in important respects represent the “purest” spectra in an image that might not have any actual pure end members. Although less than half the image might be representable as combinations of such pixels, they are real and do represent real signatures. The left and right pixel signatures are located in Figure (12) within the yellow triangles at (361878E, 4320002N) and (361929E, 4319967N) respectively. One can locate them on a real map and send real field tech out to collect real samples.


In contrast, while the refined signatures retain and often exaggerate spectral features of the “real” VCA signatures, and in principle represent purer end members in terms of which larger portions of the image may be represented, they do not correspond to the reflectance spectra of any actual pixel in the image. Rather, they must be matched against a suitably small set of library spectra to see if each may be repesented as a combination of geologically believable end members. If they can, then their corresponding abundance matrices may be used to characterize much larger portions of the image than are representable by VCA. That’s where we’re headed. But we aren’t there yet.


(End)

1WGS84 / UTM Zone 13N at [362000E, 4320000N] meters.