Skip to content

Seismic Random Noise Attenuation Based on Non-IID Pixel-Wise Gaussian Noise Modeling

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

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Requirements and Dependencies

  • Ubuntu 16.04, cuda 10.0
  • Python 3.6, Pytorch 1.1.0
  • More detail (See environment.yml)
  • Training and testing can also be performed on Windows systems.

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

Seismic Random Noise Attenuation Based on Non-IID Pixel-Wise Gaussian Noise Modeling

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages