We provide a Tensorflow implementation of LREN: Low-Rank Embedded Network for Sample-Free Hyperspectral Anomaly Detection (AAAI2021).
Framework of LREN:
- Linux 18.04 LTS
- Python 3.7.8
- Tensorflow 1.5.1
- CUDA 10.2
- Scipy 1.2.1
- Numpy 1.18.5
- Matplotlib 3.3.0
If you use this code for your research, please cite:
Jiang, K., Xie, W., Lei, J., Jiang, T., & Li, Y. (2021). LREN: Low-Rank Embedded Network for Sample-Free Hyperspectral Anomaly Detection. Proceedings of the AAAI Conference on Artificial Intelligence, 35(5), 4139-4146.
In this code, you can run our models on on four benchmark hyperspectral datasets, including SanDiego, Hydice, Coast, and Pavia.
python run_main_LREN.py
For the ease of reproducibility. We provide experimental results on hyperspectral datasets as belows:
Dataset | AUC(P_d, P_f) | AUC(P_f, \tau) |
---|---|---|
SanDiego | 0.9897 | 0.0134 |
Hydice | 0.9998 | 0.0102 |
Coast | 0.9982 | 0.0276 |
Pavia | 0.9925 | 0.0433 |
Average | 0.9951 | 0.0236 |
Since our approach is based on the following three properties:
- The background (i.e., the normal instances) still preserves a low-rank property lying in a low-dimensional manifold.
- The presence probability of the anomaly is much lower than that of the background (i.e., the normal instances).
- The latent representation serves the anomaly estimation, which optimally updates the parameters of the deep latent space.
LREN is applicable to anomaly detection tasks that satisfy these three properties. We conducted experiments on Outlier Detection DataSets (ODDS) to demonstrate the effectiveness of LREN in other anomaly detection tasks.
Dataset | AUC(P_d, P_f) | AUC(P_f, \tau) | Precision | Recall | F1 |
---|---|---|---|---|---|
Thyroid | 0.9910 | 0.0980 | 0.8571 | 0.6452 | 0.7362 |
Arrhythmia | 0.8353 | 0.0490 | 0.6389 | 0.451 | 0.5287 |