MATLAB source code
Hyperspectral unmixing is aimed at identifying the reference spectral signatures composing a hyperspectral image and their relative abundance fractions in each pixel. In practice, the identified signatures may vary spectrally from an image to another due to varying acquisition conditions, thus inducing possibly significant estimation errors. Against this background, the hyperspectral unmixing of several images acquired over the same area is of considerable interest. Indeed, such an analysis enables the endmembers of the scene to be tracked and the corresponding endmember variability to be characterized. Sequential endmember estimation from a set of hyperspectral images is expected to provide improved performance when compared with methods analyzing the images independently. However, the significant size of the hyperspectral data precludes the use of batch procedures to jointly estimate the mixture parameters of a sequence of hyperspectral images. Provided that each elementary component is present in at least one image of the sequence, we propose to perform an online hyperspectral unmixing accounting for temporal endmember variability. The online hyperspectral unmixing is formulated as a two-stage stochastic program, which can be solved using a stochastic approximation. The performance of the proposed method is evaluated on synthetic and real data. Finally, a comparison with independent unmixing algorithms illustrates the interest of the proposed strategy.
The codes made available here represent a proof of concept MATLAB implementation of the proposed approach.
P.-A. Thouvenin, N. Dobigeon and J.-Y. Tourneret - Online Unmixing of Multitemporal Hyperspectral Images Accounting for Spectral Variability, IEEE Trans. Image Processing, vol. 25, no. 9, pp. 3979-3990 Sep. 2016.