Popular Hyperspectral Target Detection Kernels

I’ve been implementing several hyperspectral target detection algorithms for the Matlab Hyperspectral Toolbox.  I am going to use this post to summarize my research and implementations.  It will take me a few days to  get all my thoughts together, so this note will be a “living post” over the next week or so.  Please email me if you find any errors or something is not explained clearly.  I can be contacted at first.last-At-gergltd.com.  Thanks, Isaac Gerg

Notation

[latex]p[/latex] – Number of bands.  E.g. for AVIRIS p = 224.

[latex]N[/latex] – Number of pixels.

[latex]q[/latex] – Number of materials in the scene.

[latex]\mathbf{M}[/latex] – Matrix of hyperspectral imagery (HSI) data. Size is (p x N).

[latex]\mathbf{x}[/latex] – Observation vector, a pixel.  Size is (p x 1).

[latex]\mathbf{\mu}[/latex] – Data mean.  Size is (p x 1).

[latex]\mathbf{t}[/latex] – Target of interest.  Size is (p x 1).

[latex]\mathbf{\Gamma}[/latex] – Covariance matrix of M.  Size is (p x p).  [latex]\mathbf{\Gamma} = \frac{(\mathbf{M}-\mathbf{\mu}\mathbf{1}^T)(\mathbf{M}-\mathbf{\mu}\mathbf{1}^T)^T}{N}[/latex]

[latex]\mathbf{R}[/latex] – Correlation matrix of M. Size is (p x p). [latex]\mathbf{R} = \frac{\mathbf{M}\mathbf{M}^T}{N}[/latex]

[latex]\mathbf{U}[/latex] – Matrix of background endmembers. Size is (p x q).

[latex]\mathbf{P}_{U}^{\perp}[/latex] – Orthogonal projection of [latex]\mathbf{U}[/latex].  [latex]\mathbf{P}_{U}^{\perp} = \mathbf{I} – \mathbf{U}\mathbf{U}^{\dagger}[/latex]

Kernels

Assume the mean has been removed from the data unless otherwise noted. Assume these kernels work on radiance or reflectance data unless otherwise noted.

RX Detector

[latex]D_{RX Detector}(\mathbf{x}) = \mathbf{x}^T\mathbf{\Gamma}^{-1}\mathbf{x}[/latex]

Matched Filter (MF)

[latex]D_{Matched Filter}(\mathbf{x}) = \frac{\mathbf{x}^T\mathbf{\Gamma}^{-1}\mathbf{t}}{\mathbf{t}^T\mathbf{\Gamma}^{-1}\mathbf{t} }[/latex]

Adaptive Coherent/Cosine Estimator (ACE)

[latex]D_{ACE}(\mathbf{x}) = \frac{(\mathbf{t}^T\mathbf{\Gamma}^{-1}\mathbf{x})^2}{(\mathbf{t}^T\mathbf{\Gamma}^{-1}\mathbf{t})(\mathbf{x}^T\mathbf{\Gamma}^{-1}\mathbf{x}) }[/latex]

Constrained Energy Minimization (CEM)

[latex]\mathbf{x}[/latex] and [latex]\mathbf{t}[/latex] are not centered for this algorithm.  I.e. Do not remove the mean of the data when computing this kernel.

[latex]D_{CEM}(\mathbf{x}) = \frac{\mathbf{t}^T\mathbf{R}^{-1}\mathbf{x}}{\mathbf{t}^T\mathbf{R}^{-1}\mathbf{t} }[/latex]

Generalized Likelihood Ratio Test (GLRT)

[latex]D_{GLRT}(\mathbf{x}) = \frac{(\mathbf{t}^T\mathbf{\Gamma}^{-1}\mathbf{x})^2}{(\mathbf{t}^T\mathbf{\Gamma}^{-1}\mathbf{t}) (1 + \mathbf{x}^T\mathbf{\Gamma}^{-1}\mathbf{x})}[/latex]

Orthogonal Subspace Projection (OSP)

[latex]D_{OSP}(\mathbf{x}) =  \mathbf{t}^T \mathbf{P}_{U}^{\perp} \mathbf{x} [/latex]

Adaptive Matched Subspace Detector (AMDS)

B is a matrix of background signatures.  Size is (p x q).  Z is a matrix of background and target signatures.  Size is (p x (q + # targets)).

[latex]D_{AMDS}(\mathbf{x})=\frac{\mathbf{x}^{T}(\mathbf{P}_{B}^{\perp} – \mathbf{P}_{Z}^{\perp})\mathbf{x}}{\mathbf{x}^{T}\mathbf{P}_{Z}^{\perp}\mathbf{x}}[/latex]

More to come…..