HyperMix: An Open-Source Tool for Fast Spectral Unmixing on Graphics Processing Units
Spectral unmixing has been a popular technique for analyzing remotely sensed hyperspectral images. The goal of unmixing is to find a collection of pure spectral constituents (called endmembers) that can explain each (possibly mixed) pixel of the scene as a combination of endmembers, weighted by their coverage fractions in the pixel or abundances. Over the last years, many algorithms have been presented to address the three main parts of the spectral unmixing chain: 1) estimation of the number of endmembers; 2) identification of the endmember signatures; and 3) estimation of the per-pixel fractional abundances. However, to date, there is no standardized tool that integrates these algorithms in a unified framework. In this letter, we present HyperMix, an open-source tool for spectral unmixing that integrates different approaches for spectral unmixing and allows building unmixing chains in graphical fashion, so that the end-user can define one or several spectral unmixing chains in fully configurable mode. HyperMix provides efficient implementations of most of the algorithms used for spectral unmixing, so that the tool automatically recognizes if the computer has a graphics processing unit (GPU) available and optimizes the execution of these algorithms in the GPU. This allows for the execution of spectral unmixing chains on large hyperspectral scenes in computationally efficient fashion. The tool is available online from http://hypercomphypermix. blogspot.com.es and has been validated with real hyperspectral scenes, providing state-of-the-art unmixing results.