Hyperspectral image target detection based on sparse representation,an effective method in Pattern Recognition. Target detection aims to separate the specific target pixel from the various backgrounds by the use of known target pixels or anomalous properties. The proposed approach relies on the binary hypothesis model of an unknown sample induced by sparse representation. The sample can be sparsely represented by training samples from the background and target dictionary. The sparse vector in the model can be recovered by a greedy algorithm OMP .
-
Chen Y, Nasrabadi N M, Tran T D. Hyperspectral image classification using dictionary-based sparse representation[J]. IEEE Transactions on Geoscience and Remote Sensing, 2011, 49(10): 3973-3985.
-
Chen Y, Nasrabadi N M, Tran T D. Sparse representation for target detection in hyperspectral imagery[J]. IEEE Journal of Selected Topics in Signal Processing, 2011, 5(3): 629-640.
The problem of target detection can be regarded as a competitive relationship of two hypotheses (Background) and (Target).
T and B are both matrices, their column vectors are divided into target and background subspace. and form the coefficient vectors of the coefficients, respectively. N denotes Gaussian random noise, [T,B]represents a cascade matrix of T and B.
Suppose ,When D is greater than a certain threshold η, then X is the target.
That means we need to find a projection matrix p.
By the sparse representation of knowledge, it is known that the residual error of signal reconstruction can be expressed as:
After comparison we can find:
Suppose ,When D is greater than a certain threshold η, then X is the target.
Then it is based on the ROC curve to compare different threshold effects, resulting in the final result.
However, it is better to amend Denominator as in practice.
./Dict_build.m
dictionary build with part of target index./Dict_build_all.m
dictionary build with all of the target indexdetect.m
Basic algorithm to detect target./local/local_suitable.m
Dual_window method with smooth and suitable to adjust and plot./local/local_smooth.m
Dual_window method with smooth./local/local_smooth.m
Dual_window method with smooth and plot results
Positive | Negative | Total | Accuracy | |
---|---|---|---|---|
Train | 37 | 6629 | 6666 | |
Test | 57 | 9943 | 10000 | 0.9989 |
1. Using all of data
Positive | Negative | Total | Accuracy | |
---|---|---|---|---|
Train | 57 | 9943 | 10000 | |
Test | 57 | 9943 | 10000 | 0.9926 |
2. Using part of the data
Positive | Negative | Total | Accuracy | |
---|---|---|---|---|
Train | 37 | 6629 | 6666 | |
Test | 57 | 9943 | 10000 | 0.985 |
For Sparse Representation
mat/detect.m
mat/local/local_smooth.m
mat/local/local_smooth_plot.m
mat/local/local_suitable.m
For SVM
svm/main.cpp
For Fisher_part
fisher/fisher.cpp
For Fisher_all
fisher/fisher_all.cpp