Skip to content

2022 TGRS Seismic Random Noise Attenuation Based on Non-IID Pixel-Wise Gaussian Noise Modeling. VI-non-IID can explicitly predict both the latent clean data and the pixelwise noise level map ($\bf{\sigma}$)

Notifications You must be signed in to change notification settings

mengchuangji/VI-Non-IID

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Seismic random noise attenuation based on non-IID pixel-wise Gaussian noise modeling

Schematic diagram of the VI-non-IID framework

VI-non-IID framework

VI-Non-IID

The input and output of VI-non-IID.

VI-non-IID-output

Note:

The predicted noise level map is very useful for analyzing the characteristics of the field seismic noise. Feel free to try it, it's very easy. Users can also use it to directly estimate the noise level of their own data, which is an important parameter for some denoising or noisy inversion algorithms, see PS-SGMs for an example. At the same time, VI-non-IID is also a blind deep denoiser tailored for seismic data, so it can also provide denoiser priors (of seismic data) for some algorithms that require the seismic data priors, see SRNGF for an example.

Datasets

Generating training data

Seismic Data Training with Synthesis Noise (when clean labels (groundtruth) are unavailable)

  1. Download the seismic from the above links and synthesize the clean data using the Marmousi model

  2. Prepare the testing datasets with different Non-IID noise coming from seismic feild data:

    python datasets/mat/generate_niid_noise_from_field.py
  1. Begining training:
    python train_NonIID-Unet_with_SynthesisSample --simulate_dir source_imgs_path --eps2 1e-6

Seismic field data training when clean labels (groundtruth) are available

Training:

  1. Writing the training and validation datasets into hdf5 fromat:
    python datasets/prepare_data/segy/big2small_seismic_train.py --data_dir field_data_path
    python datasets/prepare_data/segy/big2small_seismic_test.py --data_dir field_data_path
  1. Begin training:
    # model: NonIID-Unet recommended
    python train_NonIID-Unet_with_LabeledSample.py --SIDD_dir sidd_data_path --eps2 1e-6
    # model: NonIID-DnCNN
    python train_NonIID-DnCNN_with_LabeledSample.py --SIDD_dir sidd_data_path --eps2 1e-6

During the testing phase, we provide the corresponding trained model.

Testing VI-Non-IID model if the reference clean label of test data is unavailable

Here, test your arbitrary data. Our model can simultaneously output noise attenuation results and corresponding noise level estimation (sigma) map.

    # you can choose NonIID-Unet (recommended) or  NonIID-DnCNN
    python test_NonIID_Model_on_SEGY-field-noisy-data.py
    
    #baseline      model can be Unet or DnCNN
    python test_MSE_Model_on_SEGY-field-noisy-data.py
    

Testing if the reference clean label of test data is available

    # you can choose NonIID-Unet (recommended) or  NonIID-DnCNN
    python test_NonIID_model_CompareWithLabel.py 
    
    # baseline
    python test_MSE-model_CompareWithLabel.py
    
    

Testing on synthesis Non-IID noise

    # you can choose VI-NonIID-Unet or VI-NonIID-DnCNN
    python test_NonIID_model_on_Synthesis_IID-or-NonIID_noise.py
    
    # Baseline
    python test_MSE-model_on_Synthesis_IID-or-NonIID_noise.py
    

A note about field data

Since the field data is provided by commercial companies, it is not convenient to make it public. Users can directly replace it with their own data. 

More Description

The readsegy function can be modified based on your own data. Any other users confused about this function can contact the author directly.

Citation

If you use this code for your research, please consider citing:

@article{meng2022seismic,
  title={Seismic random noise attenuation based on non-IID pixel-wise Gaussian noise modeling},
  author={Meng, Chuangji and Gao, Jinghuai and Tian, Yajun and Wang, Zhiqiang},
  journal={IEEE Transactions on Geoscience and Remote Sensing},
  volume={60},
  pages={1--16},
  year={2022},
  publisher={IEEE}
}
    

Contact

If you have any problem about our code, feel free to contact

About

2022 TGRS Seismic Random Noise Attenuation Based on Non-IID Pixel-Wise Gaussian Noise Modeling. VI-non-IID can explicitly predict both the latent clean data and the pixelwise noise level map ($\bf{\sigma}$)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages