Download Real-Time Endmember Extraction on Multicore Processors

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Jordan normal form wikipedia , lookup

Matrix (mathematics) wikipedia , lookup

System of linear equations wikipedia , lookup

Four-vector wikipedia , lookup

Perron–Frobenius theorem wikipedia , lookup

Cayley–Hamilton theorem wikipedia , lookup

Matrix calculus wikipedia , lookup

Singular-value decomposition wikipedia , lookup

Orthogonal matrix wikipedia , lookup

Gaussian elimination wikipedia , lookup

Principal component analysis wikipedia , lookup

Non-negative matrix factorization wikipedia , lookup

Matrix multiplication wikipedia , lookup

Transcript
924
IEEE GEOSCIENCE AND REMOTE SENSING LETTERS, VOL. 8, NO. 5, SEPTEMBER 2011
Real-Time Endmember Extraction
on Multicore Processors
Alfredo Remón, Sergio Sánchez, Abel Paz, Enrique S. Quintana-Ortí, and Antonio Plaza
Abstract—In this letter, we discuss the use of multicore processors in the acceleration of endmember extraction algorithms for
hyperspectral image unmixing. Specifically, we develop computationally efficient versions of two popular fully automatic endmember extraction algorithms: orthogonal subspace projection
and N-FINDR. Our experimental results, based on the analysis of hyperspectral data collected by the National Aeronautics
and Space Administration Jet Propulsion Laboratory’s Airborne
Visible InfraRed Imaging Spectrometer, indicate that endmember
extraction algorithms can significantly benefit from these inexpensive high-performance computing platforms, which can offer
real-time response with some programming effort.
Index Terms—Endmember extraction, hyperspectral imaging,
multicore processors, spectral unmixing.
constituent spectra, called endmembers, and then express the
measured spectrum of each mixed pixel as a linear combination of endmembers weighted by abundances that indicate
the proportion of each endmember present in the pixel [4].
Let us assume that a remotely sensed hyperspectral scene with
n bands is denoted by X, in which the pixel at the discrete
spatial coordinates (i, j) of the scene is represented by a feature
vector X(i, j) = [x1 (i, j), x2 (i, j), . . . , xn (i, j)] ∈ Rn , and R
denotes the set of real numbers corresponding to the pixel
spectral response xk (i, j) at sensor channels k = 1, 2, . . . , n.
Under the linear mixture model assumption, each pixel vector
in the original scene can be modeled using
X(i, j) =
I. I NTRODUCTION
p
Φz (i, j) · Ez + n(i, j)
(1)
z=1
A
MAJOR challenge for the development of efficient hyperspectral imaging systems in the context of remote
sensing is how to deal with the extremely large volumes of data
produced by the imaging spectrometers [1]. For instance, the
National Aeronautics and Space Administration Jet Propulsion
Laboratory’s Airborne Visible InfraRed Imaging Spectrometer
(AVIRIS) [2] is able to record the visible and near infrared spectrum (wavelength region from 0.4 to 2.5 μm) of the reflected
light of an area 2- to 12-km wide and several kilometers long using 224 spectral bands, at nominal spectral resolution of 10 nm
and a spatial resolution of 20 m. If the spatial resolution of
the sensor is not high enough to separate different materials,
these can jointly occupy a single pixel and the resulting spectral
measurement will be a composite of the individual pure spectra
(mixed pixel) [3].
To deal with the problem of mixed pixels, spectral unmixing techniques first identify a collection of spectrally pure
Manuscript received January 4, 2011; revised March 18, 2011; accepted
March 22, 2011. Date of publication May 10, 2011; date of current version
August 26, 2011. This work was supported in part by the European Community’s Marie Curie Research Training Networks Program under reference
MRTN-CT-2006-035927 (Hyperspectral Imaging Network) and in part by
the Spanish Ministry of Science and Innovation with Hyperspectral Computing Laboratory/EODIX (AYA2008-05965-C04-02) and COPABIB (TIN200806570-C04-01) projects. The work of S. Sánchez was supported by a fellowship
with reference PTA2009-2611-P.
A. Remón and E. S. Quintana-Ortí are with the Department of Engineering
and Computer Science, Universidad Jaume I de Castellón, 12071 Castellón,
Spain (e-mail: [email protected]; [email protected]).
S. Sánchez, A. Paz, and A. Plaza are with the Hyperspectral Computing
Laboratory, Department of Technology of Computers and Communications,
University of Extremadura, 10003 Cáceres, Spain (e-mail: [email protected];
[email protected]; [email protected]).
Color versions of one or more of the figures in this paper are available online
at http://ieeexplore.ieee.org.
Digital Object Identifier 10.1109/LGRS.2011.2136317
where Ez denotes the spectral response of endmember z,
Φz (i, j) is a scalar value designating the fractional abundance
of the endmember z at the pixel X(i, j), p is the total number
of endmembers, and n(i, j) is a noise vector. The solution of
the linear spectral mixture problem described in (1) relies on a
successful estimation of a set {Ez }pz=1 of endmembers.
Two widely used methods (based on different principles) for
endmember extraction [5] are Harsanyi and Chang’s orthogonal
subspace projection (OSP) [6] and Winter’s N-FINDR algorithm [7]. Both methods can potentially benefit from parallel
execution on high-performance computing architectures. Efficient unmixing of hyperspectral image cubes can be greatly
beneficial in many application domains, including environmental modeling, risk/hazard prevention and response, and
defense/security. Although there exist concurrent implementations of these algorithms on parallel architectures like clusters
of computers and graphics processors (see, e.g., [8]–[10]),
so far, there exist very few documented implementations of
hyperspectral imaging algorithms in general (and endmember
extraction algorithms in particular) for multicore processors.
The advantage of multicore platforms over other specialized
parallel architectures is that they are a low-power, inexpensive,
widely available, and well-known technology.
In this letter, we propose several optimizations for two standard endmember extraction algorithms: OSP and N-FINDR.
These optimizations range from more efficient algorithmic
variants of the methods to using multithreaded linear algebra libraries as well as developing parallel implementations
specifically tailored for multicore processors. The advantages
of the implementations are assessed, from the viewpoint of
endmember extraction accuracy and parallel performance, in a
platform equipped with state-of-the-art multicore technology.
The remainder of this letter is organized as follows. Section II
reviews the two considered endmember extraction algorithms.
1545-598X/$26.00 © 2011 IEEE
REMÓN et al.: REAL-TIME ENDMEMBER EXTRACTION ON MULTICORE PROCESSORS
Fig. 1.
925
Graphical interpretation of the N-FINDR algorithm in a 3-D space. (a) N-FINDR initialized randomly (p = 4). (b) Final volume estimation by N-FINDR.
Section III describes the proposed variants and implementations, including linear algebra optimizations and multicore
processing. Section IV offers an evaluation of performance
of the different implementations. Section V concludes with
remarks and future research lines.
In the following, Z 2 (X) stands for the set of spatial coordinates of the pixels in X; the superscripts “T ” and “−1 ” denote,
respectively, the transpose and (matrix) inverse operations; I is
the identity matrix (of the appropriate order); det(·), | · |, and
mean(·) return, respectively, the matrix determinant, absolute
value, and columnwise mean of the input argument. We will
consider that the image consists of r rows and c columns of
pixels, with s = r · c n.
II. E NDMEMBER E XTRACTION A LGORITHMS
A. OSP
The OSP algorithm [6] is an iterative approach composed
of two main steps: initialization and orthogonal projections. In
the initialization step, the algorithm first calculates the pixel
vector with maximum length in the hyperspectral image, E1 ,
and labels it as the initial endmember
E1 = arg max(i,j)∈Z 2 (X) XT (i, j) · X(i, j) .
(2)
To identify the second endmember, the algorithm defines U1 =
⊥
=
[E1 ] and applies the corresponding orthogonal projector PU
1
−1
T
I − U1 (UT
1 U1 ) U1 to all image pixel vectors. This endmember is then calculated as the pixel with maximum projection value
T ⊥
⊥
E2 = arg max(i,j)∈Z 2 (X) PU
X(i,
j)
·
P
X(i,
j)
. (3)
U1
1
The algorithm next iterates for k = 2, 3, . . . using
Ek+1 = arg max(i,j)∈Z 2 (X)
⊥
PU
X(i, j)
k
T ⊥
· PUk X(i, j)
(4)
−1
⊥
T
with Uk = [E1 , E2 , . . . , Ek ] and PU
= I−Uk (UT
k Uk ) Uk .
k
The iterative procedure is terminated once a predefined number
p of endmembers, {Ez }pz=1 , have been identified.
B. N-FINDR
Let p stand for the number of sought-after endmembers and
define
1 . . . 1 det 1
v1 v2 . . . vp (5)
V (v1 , v2 , . . . , vp ) =
(p − 1)!
where v1 , v2 , . . . , vp is a collection of vectors, all of length
p − 1. The N-FINDR algorithm [7] can be summarized as
follows.
1) Feature reduction. Apply a dimensionality reduction
transformation, such as principal component analysis
(PCA) [11], [12], to reduce the dimensionality of the data
from n to p − 1.
2) Initialization. Select an initial set of p endmembers,
(0)
(0)
(0)
{E1 , E2 , . . . , Ep }, randomly from the data [see
Fig. 1(a)].
3) Volume calculation. Calculate the volume defined by the
set of endmembers
(0)
(0)
.
(6)
Vmax = V E1 , E2 , . . . , E(0)
p
4) Replacement. In the first iteration (k = 1), recalculate the
volume by testing all pixel vectors from the input data in
the first endmember position
(k−1)
. (7)
V X(i, j), E2
, . . . , E(k−1)
V (k) = max2
p
(i,j)∈Z (X)
(k−1)
If Vmax > V (k) , the endmember E1
is maintained;
otherwise, the combination with maximum volume is
retained. In particular, assume that X(i, j) is the pixel
which yields the maximum volume in this combination.
A new set of endmembers is then produced by letting
(k)
(k)
(k−1)
E1 = X(i, j) and Ei = Ei
for 1 < i ≤ p; also,
the new maximum volume is set as Vmax = V (k) . The
replacement step is now repeated by testing all pixel
vectors from the input data in the second endmember
position (k = 2), then in the third endmember position
(k = 3) and so on, retaining the combinations which
result in the maximum value until all pixel vectors in the
input data have been tested in each endmember position.
This procedure is repeated until no more endmember
replacements occur [see Fig. 1(b)].
926
IEEE GEOSCIENCE AND REMOTE SENSING LETTERS, VOL. 8, NO. 5, SEPTEMBER 2011
III. O PTIMIZATION
A. Linear Algebra Operations
1) Orthogonal Projections: Consider the n × (r · c) = n ×
s matrix M consisting of all the image pixels, with each column
of the matrix composed of the n spectral responses of a single
pixel. (For our purposes, the order in which the pixels appear
in this matrix is indifferent.) The OSP algorithm basically
computes a rank-revealing orthogonal factorization [13] of this
matrix. One of the most efficient and reliable methods to compute such a decomposition is given by the QR factorization
with column pivoting [13]. At each iteration of this procedure,
k = 1, 2, . . . , n, an orthogonal transform is computed from
the kth matrix column, and the remaining columns of the
matrix are orthogonalized with respect to it. Computing the
first p columns of this factorization via Householder reflectors
[13] amounts for about 4(nps − np2 /2 − p2 s/2 + p3 /3) flops
(floating-point arithmetic operations). As s n, p, this cost
roughly becomes 4(nps − p2 s/2) flops.
2) PCA: One popular method to perform feature reduction
is PCA [12], which basically requires the computation of the
T
T
singular values
√ and right singular vectors of M̃ = (M −
T
mean(M ))/ s − 1. In particular, consider the singular value
decomposition (SVD) M̃T = U ΣV T [13]. Then, the PCA procedure performs the dimension reduction n → (p − 1) by replacing MT with the first p − 1 columns of M̄T = M̃T V .
(For details, see, e.g., function princomp.m from Matlab.)
Exploiting that s n and that only a few columns of M̄T
are required, these computations can be performed in approximately 2n(ns − n2 /3) + 2ns(p − 1) ≈ 2sn2 flops.
3) Computation of Determinants: The determinant of a nonsingular matrix V is usually obtained from the factorization
P V = LU (where P is a permutation matrix, L is a unit lower
triangular matrix, and U is an upper triangular matrix) as the
product of the diagonal elements of U . This decomposition is
known as Gaussian elimination or the LU factorization (with
partial row pivoting) [13] and basically requires 2b3 /3 flops
for a square matrix of order b. Therefore, the repeated volume
calculations in step 3) of the N-FINDR algorithm will require
ps of such factorizations, yielding a cost of 2p4 s/3 flops.
We next describe how to reduce this cost significantly by
exploiting some basic properties of the LU factorization and
matrix determinants. Consider, e.g., the p × p and p × p − 1
matrices
1
...
1
1
(1)
VM = max(i,j)∈Z 2 (X)
(0)
(0)
E2
. . . Ep
X(i, j)
1
...
1
(1)
V̄M =
(8)
(0)
(0)
E2
. . . Ep
obtained after the feature reduction obtained from PCA. Note
(1)
(1)
that | det(VM )| = V (1) as VM is simply a column permutation of the matrix in (7). Assume that we have computed the
(1)
LU factorization (with partial pivoting) PM V̄M = LM UM .
(1)
Then, the LU factorization (with partial pivoting) of VM is
(1)
T
simply given by PM VM = [UM (L−1
M PM X(i, j))]. Therefore,
the LU factorizations required in the volume calculations
of the N-FINDR algorithm can be all computed by simply
1
forming the p × s matrix M̂ = 1 1M̄...
and then computing
T
T
L−1
M PM M̂ . The s volumes required in the first iteration of
the N-FINDR algorithm are obtained from the product of the
determinant of UM times each one of the entries in the last row
T
of L−1
M PM M̂ . Overall, this variant of the N-FINDR algorithm
employs 2p4 /3 + p3 s flops. Thus, given s p, this implies a
reduction over the original algorithm by a factor of p/3 flops.
B. Multicore Implementations and Multithreaded Libraries
The OSP and N-FINDR algorithms are composed of wellknown dense linear algebra operations: orthogonal decompositions, as the QR factorization or the SVD; the matrix–matrix
product; the LU factorization; and triangular system solves.
Linear Algebra PACKage (LAPACK) [14] is a linear algebra
library that offers efficient codes for the computation of the
QR and LU factorizations as well as the SVD (among many
other operations) on current processors. A large fraction of the
efficiency of LAPACK is due to a careful cast of a significant
portion of the flops in these codes in terms of matrix–matrix
products. This particular class of operations can efficiently
exploit the multilevel memory hierarchy of the processor, thus
hiding the latency of memory access by reusing data in the
cache memories. When executed on a multicore processor,
LAPACK exploits hardware parallelism by simply invoking
kernels from a multithreaded implementation of the basic linear
algebra subprograms (BLAS), which comprises a collection of
dense linear algebra kernels, e.g., the matrix–matrix product or
the triangular system solve; see [15]–[17]. High-performance
multithreaded implementations of these kernels are currently
available from most hardware vendors.
When using the routines in LAPACK and BLAS, it is important to select the appropriate kernel, carefully tune configuration parameters like the block size (the default parameters
in the LAPACK distribution do not offer a good performance
in some cases), choose the working accuracy, and decide the
number of threads to employ for each kernel. In our implementations of the OSP and N-FINDR algorithms, we have employed routines _geqpf (QR with column pivoting), _gesvd
(SVD), _getf2 (LU factorization with partial pivoting), _gemm
(matrix–matrix product), and _trsm (triangular system solve)
from LAPACK and BLAS. Although LAPACK offers some
alternative codes for the QR and LU factorizations with pivoting (routines _geqp3 and _getrf, respectively), the particular
shape of the matrix involved in these operations in the OSP and
N-FINDR algorithms led us to discard these. Also, to avoid
unnecessary computations, we modified the implementation of
routine _geqpf to stop after the first p iterations. For efficiency,
we compute the SVD in single precision arithmetic: Current
general-purpose processors deliver a ratio of flops per second
in single precision which roughly doubles with that attained
in double precision; Furthermore, the image data are usually
provided in integer format, and in general, single precision is
enough to accurately capture this information. On the other
hand, the LU factorizations and triangular system solve involved in the N-FINDR algorithm are all performed in doubleprecision arithmetic because the matrix to be factorized can be
ill conditioned.
The remaining options, namely, block size and number of
threads, were tuned experimentally, as they strongly depend on
the target architecture. Finally, to improve parallel performance
REMÓN et al.: REAL-TIME ENDMEMBER EXTRACTION ON MULTICORE PROCESSORS
927
TABLE I
S PECTRAL A NGLES ( IN D EGREES ) B ETWEEN USGS M INERAL S PECTRA AND T HEIR C ORRESPONDING
E NDMEMBERS E XTRACTED BY OSP AND N-FINDR F ROM THE AVIRIS C UPRITE S CENE
further, we also employed OpenMP1 to parallelize loops that
performed copies, initializations, and other minor operations.
TABLE II
E XECUTION T IME ( IN S ECONDS ) R EQUIRED FOR P ROCESSING THE
AVIRIS C UPRITE S CENE U SING O UR O PTIMIZED V ERSION OF OSP
IV. E VALUATION OF P ERFORMANCE
The hyperspectral image used in experiments is the wellknown AVIRIS Cuprite data set, available online in reflectance
units.2 This scene has been widely used to validate the performance of endmember extraction algorithms. The portion used
in experiments corresponds to a 350 × 350-pixel subset of the
sector labeled as f970619t01p02_r02_sc03.a.rfl in the online
data. This subscene has been widely studied in the endmember
extraction literature. Specifically, the number of endmembers
in the subset and the minerals present in the area according
to the U.S. Geological Survey (USGS) have been reported in
several works [9], [18]. The subscene comprises 224 spectral
bands between 0.4 and 2.5 μm, with nominal spectral resolution
of 10 nm. Prior to the analysis, bands 1–3, 107–114, 153–169,
and 221–224 were removed due to water absorption and low
SNR in those bands. The Cuprite site is well understood mineralogically and has several exposed minerals of interest included
in the USGS digital library [19]. A few selected spectra from
this library,3 corresponding to highly representative minerals in
the Cuprite mining district, are used in this work to substantiate
endmember purity.
The metric used to evaluate the accuracy of the considered
algorithms is the spectral angle (SA) [3] between each extracted
endmember and the set of available USGS ground-truth spectral
signatures. Table I tabulates the SA scores (in degrees) obtained
after comparing representative USGS library spectra of alunite,
buddingtonite, calcite, kaolinite, and muscovite, with the corresponding endmembers extracted by OSP and N-FINDR from
the considered portion of the AVIRIS Cuprite scene. It should
be noted that Table I only displays the smallest SA scores of
all endmembers with respect to each USGS signature for each
algorithm. For reference, the mean SA values across all five
USGS signatures are also reported. The number of endmembers
to be extracted was set to p = 19 in all experiments after
a consensus is reached by two methods for estimating the
number of endmembers in the hyperspectral data: hyperspectral
signal identification by minimum error [20] and the virtual
dimensionality concept [21], implemented using PF = 10−3
as the input false alarm probability. As shown in Table I, the
two algorithms produce very similar results with the N-FINDR
providing slightly better SA scores (on average) for the five
considered minerals.
It should be noted that our implementations provide exactly
the same results as the original versions in which they are based.
For the OSP, the algorithmic description is available in the
literature [6]. In this case, we made sure that our optimizations
1 http://openmp.org
2 http://aviris.jpl.nasa.gov/html/aviris.freedata.html
3 http://speclab.cr.usgs.gov/spectral.lib06
TABLE III
E XECUTION T IME ( IN S ECONDS ) R EQUIRED FOR P ROCESSING THE
AVIRIS C UPRITE S CENE U SING O UR O PTIMIZED V ERSION OF N-FINDR
do not alter the endmembers obtained by the original version.
For the N-FINDR, the exact algorithmic description is not
available since it is a commercially distributed algorithm.
However, the results obtained after applying our proposed
optimizations have been validated with the algorithmic description of the N-FINDR algorithm given in [18].
Tables II and III, respectively, show the execution time (in
seconds) required for processing the AVIRIS Cuprite scene
using our optimized versions of OSP and N-FINDR. Experiments were carried out on a Linux platform (CentOS 5.1, kernel
2.6.18) equipped with two Intel Xeon E5520 quad-core processors (total of eight cores), running at 2.27 GHz, and 24 GB
of RAM. The multithreaded implementation of LAPACK and
BLAS from Intel Math Kernel Library (version 11.0) and the
GNU gcc compiler (version 4.1.2), with optimization flags
− − O3 − fopenmp, was used to produce the executable codes.
Table II indicates that, after applying the proposed linear
algebra optimizations in Section III-A, the OSP completes
its calculations in less than 1 s. This is shown in the result
reported for one processing core in Table II. However, after
applying the multicore optimizations in Section III-B, it can
be seen in Table II that the algorithm cannot benefit from the
use of multiple cores. (This is because a significant part of
the computation is due to matrix–vector products, an operation
whose performance is intrinsically limited by the memory
bandwidth, independently of the number of cores/floating-point
units.) Quite opposite, Table III indicates that the N-FINDR can
benefit from the use of multiple cores, mainly because the PCA
and replacement steps can be parallelized effectively. In this
case, we emphasize that the time obtained using one processing
core, after applying the linear algebra optimizations introduced
in Section III-A, already represents a significant reduction over
previously published results for the algorithm [18].
928
IEEE GEOSCIENCE AND REMOTE SENSING LETTERS, VOL. 8, NO. 5, SEPTEMBER 2011
Before concluding this letter, it is important to emphasize that
the processing times in Tables II and III (using four and eight
cores for the N-FINDR algorithm) are strictly in real time. The
cross-track line scan time in AVIRIS, a push-broom instrument,
is 8.3 ms to collect 512 pixel vectors. This introduces the need
to process the AVIRIS Cuprite scene (350 × 350 pixels) in less
than 1.985 s to fully attain real-time performance.
Our implementations can also operate with larger image
sizes. We have processed another AVIRIS hyperspectral data
set comprising 512 × 614 pixels collected over the World Trade
Center in New York4 after the terrorist attacks on September 11.
The dimensions of this scene represent the standard data cube
size recorded by AVIRIS. The two considered algorithms could
perform in real time—meaning that a processing time below
5.096 s was accomplished—for this data cube (using p = 26
endmembers). Specifically, the optimized OSP processed the
data cube in 3.019 s using one core, with no significant improvements observed for the multicore version. On the other
hand, the optimized N-FINDR processed the data cube in
15.001 s using one core but achieved real-time performance
with eight cores (4.879 seconds). Since our proposed algorithms need to store the hyperspectral data cube in memory,
the maximum data cube size obtained in push-broom fashion
by AVIRIS (approximately 140 MB, assuming that each wavelength value is represented using 2 B) is reasonable given the
memory capacity of modern multicore processors.
In summary, our results demonstrate that real-time performance can be achieved by resorting to standard multicore architectures, which opens the path toward incorporation of these
platforms (coupled with efficient processing algorithms such
as those reported in this letter) onboard airborne and satellite
instruments for real-time hyperspectral data processing.
V. C ONCLUSION AND F UTURE R ESEARCH L INES
In this letter, we have introduced efficient implementations
of two popular endmember extraction algorithms: OSP and
N-FINDR on multicore platforms. With some programming
effort (based on linear algebra techniques and multithreaded
libraries), both algorithms can boost their computational performance in relatively inexpensive platforms and provide realtime response, using only one processing core in the case of
OSP and four cores in the case of N-FINDR. This represents a
tremendous improvement with respect to previously published
implementations of these two algorithms. In the future, we plan
to further exploit the optimization techniques adopted in this
letter to accelerate other endmember extraction and spectral
unmixing algorithms.
ACKNOWLEDGMENT
The authors would like to thank R. O. Green at the Jet Propulsion Laboratory, National Aeronautics and Space Administration for making the AVIRIS Cuprite scene available to the
scientific community. Last, but not the least, the authors would
4 http://speclab.cr.usgs.gov/wtc/
like to thank the anonymous reviewers for their constructive
criticisms, which greatly helped them to improve the quality
and presentation of this letter.
R EFERENCES
[1] C. Chang, Hyperspectral Data Exploitation: Theory and Applications.
New York: Wiley, 2007.
[2] R. Green, M. L. Eastwood, C. M. Sarture, T. G. Chrien, M. Aronsson,
B. J. Chippendale, J. A. Faust, B. E. Pavri, C. J. Chovit, M. Solis, M.
R. Olah, and O. Williams, “Imaging spectroscopy and the Airborne
Visible/Infrared Imaging Spectrometer (AVIRIS),” Remote Sens.
Environ., vol. 65, no. 3, pp. 227–248, Sep. 1998.
[3] N. Keshava and J. F. Mustard, “Spectral unmixing,” IEEE Signal Process.
Mag., vol. 19, no. 1, pp. 44–57, Jan. 2002.
[4] J. B. Adams, M. O. Smith, and P. E. Johnson, “Spectral mixture modeling:
A new analysis of rock and soil types at the Viking Lander 1 site,”
J. Geophys. Res., vol. 91, no. B8, pp. 8098–8112, 1986.
[5] A. Plaza, P. Martinez, R. Perez, and J. Plaza, “A quantitative and comparative analysis of endmember extraction algorithms from hyperspectral
data,” IEEE Trans. Geosci. Remote Sens., vol. 42, no. 3, pp. 650–663,
Mar. 2004.
[6] J. C. Harsanyi and C.-I. Chang, “Hyperspectral image classification and
dimensionality reduction: An orthogonal subspace projection approach,”
IEEE Trans. Geosci. Remote Sens., vol. 32, no. 4, pp. 779–785, Jul. 1994.
[7] M. E. Winter, “N-FINDR: An algorithm for fast autonomous spectral
end-member determination in hyperspectral data,” in Proc. SPIE Image
Spectrometry V, 2003, vol. 3753, pp. 266–277.
[8] A. Plaza, D. Valencia, J. Plaza, and P. Martinez, “Commodity clusterbased parallel processing of hyperspectral imagery,” J. Parallel Distrib.
Comput., vol. 66, no. 3, pp. 345–358, Mar. 2006.
[9] A. Plaza, D. Valencia, J. Plaza, and C.-I. Chang, “Parallel implementation of endmember extraction algorithms from hyperspectral data,” IEEE
Geosci. Remote Sens. Lett., vol. 3, no. 3, pp. 334–338, Jul. 2006.
[10] J. Setoain, M. Prieto, C. Tenllado, A. Plaza, and F. Tirado, “Parallel morphological endmember extraction using commodity graphics hardware,”
IEEE Geosci. Remote Sens. Lett., vol. 4, no. 3, pp. 441–445, Jul. 2007.
[11] J. A. Richards and X. Jia, Remote Sensing Digital Image Analysis:
An Introduction. New York: Springer-Verlag, 2006.
[12] J. E. Jackson, A User’s Guide to Principal Components. New York:
Wiley, 1991.
[13] G. H. Golub and C. F. V. Loan, Matrix Computations, 3rd ed. Baltimore,
MD: Johns Hopkins Univ. Press, 1996.
[14] E. Anderson, Z. Bai, C. Bischof, J. Demmel, J. Dongarra, J. D. Croz,
A. Greenbaum, S. Hammarling, A. McKenney, S. Ostrouchov, and
D. Sorensen, LAPACK Users’ Guide—Release 2.0. Philadelphia, PA:
SIAM, 1994.
[15] J. J. Dongarra, J. Du Croz, S. Hammarling, and I. Duff, “A set of level
3 basic linear algebra subprograms,” ACM Trans. Math. Softw., vol. 16,
no. 1, pp. 1–17, Mar. 1990.
[16] K. Goto and R. A. van de Geijn, “Anatomy of a high-performance matrix multiplication,” ACM Trans. Math. Softw., vol. 34, no. 3, pp. 1–25,
May 2008, article 12.
[17] K. Goto and R. van de Geijn, “High performance implementation of the
level-3 BLAS,” ACM Trans. Math. Softw., vol. 35, no. 1, pp. 4:1–4:14,
Jul. 2008.
[18] M. Zortea and A. Plaza, “A quantitative and comparative analysis of
different implementations of N-FINDR: A fast endmember extraction
algorithm,” IEEE Geosci. Remote Sens. Lett., vol. 6, no. 4, pp. 787–791,
Oct. 2009.
[19] R. N. Clark, G. A. Swayze, R. Wise, E. Livo, T. Hoefen, R. Kokaly,
and S. J. Sutley, USGS Digital Spectral Library splib06a, 2007. [Online].
Available: http://speclab.cr.usgs.gov/spectral.lib06
[20] J. M. Bioucas-Dias and J. M. P. Nascimento, “Hyperspectral subspace identification,” IEEE Trans. Geosci. Remote Sens., vol. 46, no. 8,
pp. 2435–2445, Aug. 2008.
[21] C.-I. Chang and Q. Du, “Estimation of number of spectrally distinct signal
sources in hyperspectral imagery,” IEEE Trans. Geosci. Remote Sens.,
vol. 42, no. 3, pp. 608–619, Mar. 2004.