This repository contains the testing code of InSAR-MONet: Interferometric SAR phase denoising using a multi-objective neural network., a CNN based solution for Interferometric SAR Phase denoising.
if you find it usefule and use it for you research, please cite as the following:
S. Vitale, G. Ferraioli, V. Pascazio and G. Schirinzi, "InSAR-MONet: Interferometric SAR Phase Denoising Using a Multiobjective Neural Network," in IEEE Transactions on Geoscience and Remote Sensing, vol. 60, pp. 1-14, 2022, Art no. 5239814, doi: 10.1109/TGRS.2022.3224303.
InSAR-MONet inherits the 17 layers CNN architectures and the concept of using a multi-objective cost function from MONet.
The cost function is composed of three terms taking care of spatial and statistical properties of the interferometric phase: a cosine based metric for evaluating similarity between output and reference, a gradient based metric for edges preservation and the Kullback-Leibler divergence between estimated noise distribution and the theoretical one.
An example on simulated data is shown below
Noisy Image | Noise-Free Reference | InSAR-MONet |
---|---|---|
Sergio Vitale (contact person, sergio.vitale@uniparthenope.it); Giampaolo Ferraioli (giampaolo.ferraioli@uniparthenope.it); Gilda Schirinzi (gilda.schirinzi@uniparthenope.it) Vito Pascazio (vito.pascazio@uniparthenope.it)
Copyright (c) 2022 Dipartimento di Ingegneria and Dipartimento di Scienze e Tecnologie of Università degli Studi di Napoli "Parthenope".
All rights reserved. This work should only be used for nonprofit purposes.
By downloading and/or using any of these files, you implicitly agree to all the terms of the license, as specified in the document LICENSE.txt (included in this directory)
-
data folder contains three samples images with simulated interferometric SAR phases (corresponding to the examples of the paper); Three differente cases can be tested:
- small baseline and high coherence (B1, Gamma 4)
- medium baseline and medium coherence (B2, Gamma 3)
- large baseline and low coherence (B4, Gamma 1)
-
model contains trained weigths
-
model.py contains the model implementation
-
testing.py is the main script for testing
This code is written on Ubuntu system for Python3.7 and uses Pytorch library.
For a correct usage of the code, please install the python environement saved in ./env/monet_pytorch.yml with the following step:
Installing Anaconda (if not already installed)
- download anaconda3 from https://www.anaconda.com/products/individual#linux
- from command line, move to the download directory and install the package by:
sh <Anaconda_downloaded_version>.sh and follow the instruction for installation
- add conda to path
PATH=~/anaconda3/bin:$PATH
Installing the conda environment
The file ./insarmonet_env.yml contains the environemnt for the testing the code. You can easily installing it by command line:
- move to the folder containing the github repository and open the terminal
- run the following command
conda env create -f insarmonet_env.yml
Once environment has been set up, activate it by command line as well:
- activate the environemnt from the command line
conda activate insarmonet_env
- launch spyder
spyder
- goes to the folder containing testing.py, edit and run