Random Noise Suppression AVO Benchmark

Deep-learning-based random-noise attenuation on pre-stack seismic shot gathers, using the clean seismic.segy AVO dataset and synthetic Gaussian / Poisson noise injection.

Task

Given a clean shot gather, the benchmark first injects synthetic random noise at a specified SNR, then trains a model to directly reconstruct the clean signal:

denoised = model(noisy_input)

This is a paired regression task with clean-target supervision. Most models directly predict the clean gather. The DDPM variant predicts diffusion noise during training and reconstructs the clean gather through reverse sampling at evaluation / inference time.

Dataset

  • Source: Clean AVO seismic.segy data
  • Current training volume: seismic.segy
  • Geometry: 201 traces per shot, time sampling interval dt = 2 ms
  • Split: Shot-level sequential 7:1:1
    • 801 training shots
    • 100 validation shots
    • 100 held-out test shots

Synthetic Noise Settings

  • Noise kinds: gaussian, poisson
  • Default sweep in training / inference scripts: SNR = -5, 0, 5 dB
  • Noise injection: per-shot variance-controlled synthetic corruption
  • Reproducibility: noise generation is seeded from experiment.seed

Model Architectures

  • UNet (unet): classic encoder-decoder with skip connections. Base channels: 32, depth: 4.
  • ResUNet (res_unet): U-Net with residual blocks. Base channels: 32, depth: 4.
  • DnCNN (dncnn): residual denoising CNN with 17 layers and 64 feature channels.
  • Attention UNet (atten_unet): U-Net with attention gates. Base channels: 32, depth: 4.
  • DDPM (ddpm): standard conditional denoising diffusion probabilistic model with reverse sampling from Gaussian noise to the clean shot gather.
  • SCRN (SCRN): Swin Transformer convolutional residual network adapted to the same random-noise benchmark pipeline.

Preprocessing

  • Amplitude correction: spherical divergence correction is skipped by default
  • Normalization: max_abs, per-shot
  • Patching: overlapping 2D patches of size 128 x 256 (trace x time)
  • Patch overlap: 50%

Training uses patched shot gathers. Inference reloads the raw volume, applies inference.shot_split, injects synthetic noise, runs patch-based reconstruction, and inverse-normalizes outputs for visualization.

Repository Structure

scripts/random_noise_suppression_avo/
|- train_denoise_unet.sh
|- train_denoise_res_unet.sh
|- train_denoise_dncnn.sh
|- train_denoise_atten_unet.sh
|- train_denoise_ddpm.sh
|- train_denoise_SCRN.sh
|- inference_denoise_unet.sh
|- inference_denoise_res_unet.sh
|- inference_denoise_dncnn.sh
|- inference_denoise_atten_unet.sh
|- inference_denoise_ddpm.sh
|- inference_denoise_SCRN.sh
`- run_all_random_noise_models.sh

configs/random_noise_suppression_avo/
|- denoise_unet.yaml
|- denoise_res_unet.yaml
|- denoise_dncnn.yaml
|- denoise_atten_unet.yaml
|- denoise_ddpm.yaml
`- denoise_SCRN.yaml

Each experiment directory is named by model, noise kind, SNR, and seed, for example:

random_noise_avo_unet_base_gaussian_snr5_seed42/
random_noise_avo_dncnn_base_poisson_snr0_seed43/
random_noise_avo_ddpm_base_gaussian_snrneg5_seed44/

Training Details

Shared benchmark defaults:

Hyperparameter Value
Loss MSE
DDPM note trains on diffusion-noise prediction and validates clean reconstruction after reverse sampling
Optimizer AdamW (lr=1e-4, weight_decay=1e-5)
Scheduler Cosine annealing (min_lr=1e-6)
Epochs 200
Gradient clipping 1.0
Seeds 42, 43, 44 by default in shell sweeps
Batch size 192 in current YAML defaults

Usage

Train One Model Family

bash scripts/random_noise_suppression_avo/train_denoise_unet.sh

or

bash scripts/random_noise_suppression_avo/train_denoise_ddpm.sh

Each training shell script sweeps:

  • noise kind
  • SNR
  • seed

by rewriting a temporary YAML config before calling torchrun.

Run Inference

bash scripts/random_noise_suppression_avo/inference_denoise_unet.sh

Inference outputs:

  • per-shot metrics CSV
  • summary JSON
  • visualizations
  • optional .npy files
  • multi-seed mean/std aggregation JSON

Run All Model Families

bash scripts/random_noise_suppression_avo/run_all_random_noise_models.sh

Current total-run script executes:

  1. unet
  2. dncnn
  3. res_unet
  4. atten_unet
  5. ddpm

Each model is trained first, then its inference sweep is launched immediately after training finishes.

Inference Outputs

For each experiment, the inference directory typically contains:

inference/
|- inference.log
|- metrics_per_shot.csv
|- metrics_summary.json
|- visualizations/
`- npy/                    # only when save_npy=true

Metrics

The benchmark reports:

  • snr
  • psnr
  • ssim
  • mae
  • mse
  • rmse

for three groups:

  • noisy: noisy input vs clean target
  • denoised: model prediction vs clean target
  • delta: denoised - noisy

Metrics are computed in the normalized domain. Saved visualization outputs are inverse-normalized back to the original amplitude domain.

Notes

  • This benchmark injects synthetic random noise once per experiment before patch extraction; it is not an epoch-wise dynamic noise augmentation setup.
  • Shot-level inference uses the held-out test shot defined by inference.shot_split.
  • Batch size and patch size may need adjustment for memory-heavy models such as DnCNN and DDPM.

References

  • Ronneberger et al., U-Net: Convolutional Networks for Biomedical Image Segmentation, MICCAI 2015
  • He et al., Deep Residual Learning for Image Recognition, CVPR 2016
  • Zhang et al., Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising, IEEE TIP 2017
  • Ho et al., Denoising Diffusion Probabilistic Models, NeurIPS 2020
  • Song et al., Denoising Diffusion Implicit Models, ICLR 2021
  • Oktay et al., Attention U-Net: Learning Where to Look for the Pancreas, MIDL 2018
  • Gao et al., Swin Transformer for simultaneous denoising and interpolation of seismic data, Computers and Geosciences 2024
  • SEG C3 Velocity Model: https://wiki.seg.org/wiki/C3

Results

Mean +- std over available seeds, computed from *_seed_stats/metrics_summary_mean_std.json. Metrics are reported in the normalized domain. Raw (noisy) is the synthetic noisy input before denoising.

Gaussian Noise

SNR -5 dB

Method Parameters (M) SNR PSNR SSIM MAE MSE RMSE EB_WSE_MEDIUM_40_70_NE EB_WSE_MEDIUM_40_70_SNR EB_WSE_STRONG_70_100_NE EB_WSE_STRONG_70_100_SNR EB_WSE_VERY_WEAK_5_20_NE EB_WSE_VERY_WEAK_5_20_SNR EB_WSE_WEAK_20_40_NE EB_WSE_WEAK_20_40_SNR FB_FRE_HIGH_ENERGY_RATIO FB_FRE_HIGH_FREQUENCY_RANGE_HZ FB_FRE_HIGH_NE FB_FRE_HIGH_SNR FB_FRE_LOW_ENERGY_RATIO FB_FRE_LOW_FREQUENCY_RANGE_HZ FB_FRE_LOW_NE FB_FRE_LOW_SNR FB_FRE_MID_ENERGY_RATIO FB_FRE_MID_FREQUENCY_RANGE_HZ FB_FRE_MID_NE FB_FRE_MID_SNR FB_FRE_VERY_HIGH_ENERGY_RATIO FB_FRE_VERY_HIGH_FREQUENCY_RANGE_HZ FB_FRE_VERY_HIGH_NE FB_FRE_VERY_HIGH_SNR
Raw (noisy) - -5.0000+-0.0015 28.4184+-0.0015 0.6663+-0.0002 0.030315+-0.000008 0.001448+-0.000001 0.037994+-0.000007 30.056404+-0.003195 -29.5408+-0.0009 0.974550+-0.000441 0.2240+-0.0039 217.468024+-0.075775 -46.7401+-0.0030 100.131537+-0.019746 -39.9965+-0.0018 0.168114+-0.000000 48.3333-73.5333 1.841567+-0.000122 -5.2710+-0.0006 0.283209+-0.000000 6.3333-23.1333 1.150310+-0.000255 -1.2055+-0.0019 0.425271+-0.000000 23.1333-48.3333 1.147630+-0.000330 -1.1892+-0.0025 0.001317+-0.000000 73.5333-90.3333 18.962028+-0.014011 -25.2465+-0.0056
UNet 7.76 8.9440+-0.0034 42.3624+-0.0034 0.9807+-0.0000 0.004273+-0.000002 0.000058+-0.000000 0.007623+-0.000003 2.416080+-0.000817 -7.6466+-0.0029 0.338792+-0.000149 9.4048+-0.0037 15.867472+-0.007823 -23.9986+-0.0043 7.376587+-0.006652 -17.3406+-0.0071 0.168114+-0.000000 48.3333-73.5333 0.371155+-0.000550 8.6215+-0.0129 0.283209+-0.000000 6.3333-23.1333 0.350323+-0.000279 9.1190+-0.0065 0.425271+-0.000000 23.1333-48.3333 0.308464+-0.000132 10.2247+-0.0039 0.001317+-0.000000 73.5333-90.3333 1.857709+-0.001298 -5.2139+-0.0053

SNR 0 dB

Method Parameters (M) SNR PSNR SSIM MAE MSE RMSE EB_WSE_MEDIUM_40_70_NE EB_WSE_MEDIUM_40_70_SNR EB_WSE_STRONG_70_100_NE EB_WSE_STRONG_70_100_SNR EB_WSE_VERY_WEAK_5_20_NE EB_WSE_VERY_WEAK_5_20_SNR EB_WSE_WEAK_20_40_NE EB_WSE_WEAK_20_40_SNR FB_FRE_HIGH_ENERGY_RATIO FB_FRE_HIGH_FREQUENCY_RANGE_HZ FB_FRE_HIGH_NE FB_FRE_HIGH_SNR FB_FRE_LOW_ENERGY_RATIO FB_FRE_LOW_FREQUENCY_RANGE_HZ FB_FRE_LOW_NE FB_FRE_LOW_SNR FB_FRE_MID_ENERGY_RATIO FB_FRE_MID_FREQUENCY_RANGE_HZ FB_FRE_MID_NE FB_FRE_MID_SNR FB_FRE_VERY_HIGH_ENERGY_RATIO FB_FRE_VERY_HIGH_FREQUENCY_RANGE_HZ FB_FRE_VERY_HIGH_NE FB_FRE_VERY_HIGH_SNR
Raw (noisy) - 0.0000+-0.0015 33.4184+-0.0015 0.8644+-0.0001 0.017047+-0.000004 0.000458+-0.000000 0.021365+-0.000004 16.901958+-0.001796 -24.5408+-0.0009 0.548030+-0.000248 5.2240+-0.0039 122.291257+-0.042611 -41.7401+-0.0030 56.308101+-0.011104 -34.9965+-0.0018 0.168114+-0.000000 48.3333-73.5333 1.035589+-0.000068 -0.2710+-0.0006 0.283209+-0.000000 6.3333-23.1333 0.646867+-0.000144 3.7945+-0.0019 0.425271+-0.000000 23.1333-48.3333 0.645360+-0.000186 3.8108+-0.0025 0.001317+-0.000000 73.5333-90.3333 10.663132+-0.007879 -20.2465+-0.0056
UNet 7.76 10.5129+-0.0048 43.9313+-0.0048 0.9847+-0.0000 0.003534+-0.000002 0.000040+-0.000000 0.006361+-0.000003 1.862257+-0.001138 -5.3904+-0.0051 0.285767+-0.000168 10.8867+-0.0049 11.745703+-0.009011 -21.3908+-0.0068 5.497729+-0.002016 -14.7914+-0.0029 0.168114+-0.000000 48.3333-73.5333 0.295392+-0.000340 10.6085+-0.0097 0.283209+-0.000000 6.3333-23.1333 0.298379+-0.000381 10.5175+-0.0108 0.425271+-0.000000 23.1333-48.3333 0.250014+-0.000159 12.0534+-0.0055 0.001317+-0.000000 73.5333-90.3333 1.658566+-0.001730 -4.2297+-0.0092

SNR 5 dB

Method Parameters (M) SNR PSNR SSIM MAE MSE RMSE EB_WSE_MEDIUM_40_70_NE EB_WSE_MEDIUM_40_70_SNR EB_WSE_STRONG_70_100_NE EB_WSE_STRONG_70_100_SNR EB_WSE_VERY_WEAK_5_20_NE EB_WSE_VERY_WEAK_5_20_SNR EB_WSE_WEAK_20_40_NE EB_WSE_WEAK_20_40_SNR FB_FRE_HIGH_ENERGY_RATIO FB_FRE_HIGH_FREQUENCY_RANGE_HZ FB_FRE_HIGH_NE FB_FRE_HIGH_SNR FB_FRE_LOW_ENERGY_RATIO FB_FRE_LOW_FREQUENCY_RANGE_HZ FB_FRE_LOW_NE FB_FRE_LOW_SNR FB_FRE_MID_ENERGY_RATIO FB_FRE_MID_FREQUENCY_RANGE_HZ FB_FRE_MID_NE FB_FRE_MID_SNR FB_FRE_VERY_HIGH_ENERGY_RATIO FB_FRE_VERY_HIGH_FREQUENCY_RANGE_HZ FB_FRE_VERY_HIGH_NE FB_FRE_VERY_HIGH_SNR
Raw (noisy) - 5.0000+-0.0015 38.4184+-0.0015 0.9528+-0.0000 0.009587+-0.000002 0.000145+-0.000000 0.012015+-0.000002 9.504669+-0.001010 -19.5408+-0.0009 0.308180+-0.000139 10.2240+-0.0039 68.769427+-0.023962 -36.7401+-0.0030 31.664372+-0.006244 -29.9965+-0.0018 0.168114+-0.000000 48.3333-73.5333 0.582355+-0.000039 4.7290+-0.0006 0.283209+-0.000000 6.3333-23.1333 0.363760+-0.000081 8.7945+-0.0019 0.425271+-0.000000 23.1333-48.3333 0.362912+-0.000104 8.8108+-0.0025 0.001317+-0.000000 73.5333-90.3333 5.996320+-0.004431 -15.2465+-0.0056
UNet 7.76 12.7151+-0.0046 46.1335+-0.0046 0.9911+-0.0000 0.002776+-0.000001 0.000024+-0.000000 0.004937+-0.000003 1.481680+-0.000344 -3.4066+-0.0018 0.221581+-0.000125 13.0955+-0.0048 9.064477+-0.003318 -19.1393+-0.0034 4.239337+-0.001748 -12.5320+-0.0035 0.168114+-0.000000 48.3333-73.5333 0.239064+-0.000116 12.4555+-0.0039 0.283209+-0.000000 6.3333-23.1333 0.215258+-0.000339 13.3532+-0.0133 0.425271+-0.000000 23.1333-48.3333 0.191701+-0.000072 14.3603+-0.0033 0.001317+-0.000000 73.5333-90.3333 1.533126+-0.002486 -3.5443+-0.0129

Poisson Noise

SNR -5 dB

Method Parameters (M) SNR PSNR SSIM MAE MSE RMSE EB_WSE_MEDIUM_40_70_NE EB_WSE_MEDIUM_40_70_SNR EB_WSE_STRONG_70_100_NE EB_WSE_STRONG_70_100_SNR EB_WSE_VERY_WEAK_5_20_NE EB_WSE_VERY_WEAK_5_20_SNR EB_WSE_WEAK_20_40_NE EB_WSE_WEAK_20_40_SNR FB_FRE_HIGH_ENERGY_RATIO FB_FRE_HIGH_FREQUENCY_RANGE_HZ FB_FRE_HIGH_NE FB_FRE_HIGH_SNR FB_FRE_LOW_ENERGY_RATIO FB_FRE_LOW_FREQUENCY_RANGE_HZ FB_FRE_LOW_NE FB_FRE_LOW_SNR FB_FRE_MID_ENERGY_RATIO FB_FRE_MID_FREQUENCY_RANGE_HZ FB_FRE_MID_NE FB_FRE_MID_SNR FB_FRE_VERY_HIGH_ENERGY_RATIO FB_FRE_VERY_HIGH_FREQUENCY_RANGE_HZ FB_FRE_VERY_HIGH_NE FB_FRE_VERY_HIGH_SNR
Raw (noisy) - -4.9986+-0.0015 28.4198+-0.0015 0.6663+-0.0001 0.030308+-0.000004 0.001447+-0.000000 0.037988+-0.000007 30.055742+-0.008101 -29.5406+-0.0024 0.974447+-0.000121 0.2249+-0.0011 217.357200+-0.102979 -46.7357+-0.0040 100.096922+-0.017429 -39.9936+-0.0012 0.168114+-0.000000 48.3333-73.5333 1.841246+-0.000500 -5.2697+-0.0024 0.283209+-0.000000 6.3333-23.1333 1.149769+-0.000100 -1.2014+-0.0009 0.425271+-0.000000 23.1333-48.3333 1.147469+-0.000565 -1.1882+-0.0043 0.001317+-0.000000 73.5333-90.3333 18.965560+-0.004406 -25.2484+-0.0018
UNet 7.76 8.9857+-0.0031 42.4041+-0.0031 0.9808+-0.0000 0.004256+-0.000000 0.000058+-0.000000 0.007587+-0.000003 2.415076+-0.002099 -7.6446+-0.0074 0.337022+-0.000162 9.4499+-0.0042 15.838296+-0.020752 -23.9837+-0.0112 7.364007+-0.012769 -17.3268+-0.0150 0.168114+-0.000000 48.3333-73.5333 0.369695+-0.000207 8.6562+-0.0048 0.283209+-0.000000 6.3333-23.1333 0.346966+-0.000291 9.2024+-0.0073 0.425271+-0.000000 23.1333-48.3333 0.307719+-0.000289 10.2453+-0.0085 0.001317+-0.000000 73.5333-90.3333 1.854940+-0.000681 -5.2019+-0.0030

SNR 0 dB

Method Parameters (M) SNR PSNR SSIM MAE MSE RMSE EB_WSE_MEDIUM_40_70_NE EB_WSE_MEDIUM_40_70_SNR EB_WSE_STRONG_70_100_NE EB_WSE_STRONG_70_100_SNR EB_WSE_VERY_WEAK_5_20_NE EB_WSE_VERY_WEAK_5_20_SNR EB_WSE_WEAK_20_40_NE EB_WSE_WEAK_20_40_SNR FB_FRE_HIGH_ENERGY_RATIO FB_FRE_HIGH_FREQUENCY_RANGE_HZ FB_FRE_HIGH_NE FB_FRE_HIGH_SNR FB_FRE_LOW_ENERGY_RATIO FB_FRE_LOW_FREQUENCY_RANGE_HZ FB_FRE_LOW_NE FB_FRE_LOW_SNR FB_FRE_MID_ENERGY_RATIO FB_FRE_MID_FREQUENCY_RANGE_HZ FB_FRE_MID_NE FB_FRE_MID_SNR FB_FRE_VERY_HIGH_ENERGY_RATIO FB_FRE_VERY_HIGH_FREQUENCY_RANGE_HZ FB_FRE_VERY_HIGH_NE FB_FRE_VERY_HIGH_SNR
Raw (noisy) - 0.0023+-0.0012 33.4206+-0.0012 0.8645+-0.0000 0.017041+-0.000002 0.000458+-0.000000 0.021360+-0.000003 16.897970+-0.004420 -24.5386+-0.0022 0.548122+-0.000078 5.2225+-0.0012 122.192401+-0.050008 -41.7331+-0.0035 56.272479+-0.003774 -34.9910+-0.0005 0.168114+-0.000000 48.3333-73.5333 1.035247+-0.000049 -0.2683+-0.0004 0.283209+-0.000000 6.3333-23.1333 0.646679+-0.000100 3.7971+-0.0014 0.425271+-0.000000 23.1333-48.3333 0.645245+-0.000461 3.8120+-0.0062 0.001317+-0.000000 73.5333-90.3333 10.666173+-0.001591 -20.2493+-0.0019
UNet 7.76 10.2685+-0.0045 43.6869+-0.0045 0.9836+-0.0000 0.003591+-0.000001 0.000043+-0.000000 0.006543+-0.000003 1.889969+-0.000705 -5.5192+-0.0033 0.294167+-0.000159 10.6331+-0.0049 11.981634+-0.005965 -21.5637+-0.0042 5.589865+-0.005678 -14.9357+-0.0088 0.168114+-0.000000 48.3333-73.5333 0.302042+-0.000172 10.4159+-0.0051 0.283209+-0.000000 6.3333-23.1333 0.306526+-0.000292 10.2817+-0.0086 0.425271+-0.000000 23.1333-48.3333 0.251918+-0.000122 11.9870+-0.0046 0.001317+-0.000000 73.5333-90.3333 1.700620+-0.001753 -4.4417+-0.0097

SNR 5 dB

Method Parameters (M) SNR PSNR SSIM MAE MSE RMSE EB_WSE_MEDIUM_40_70_NE EB_WSE_MEDIUM_40_70_SNR EB_WSE_STRONG_70_100_NE EB_WSE_STRONG_70_100_SNR EB_WSE_VERY_WEAK_5_20_NE EB_WSE_VERY_WEAK_5_20_SNR EB_WSE_WEAK_20_40_NE EB_WSE_WEAK_20_40_SNR FB_FRE_HIGH_ENERGY_RATIO FB_FRE_HIGH_FREQUENCY_RANGE_HZ FB_FRE_HIGH_NE FB_FRE_HIGH_SNR FB_FRE_LOW_ENERGY_RATIO FB_FRE_LOW_FREQUENCY_RANGE_HZ FB_FRE_LOW_NE FB_FRE_LOW_SNR FB_FRE_MID_ENERGY_RATIO FB_FRE_MID_FREQUENCY_RANGE_HZ FB_FRE_MID_NE FB_FRE_MID_SNR FB_FRE_VERY_HIGH_ENERGY_RATIO FB_FRE_VERY_HIGH_FREQUENCY_RANGE_HZ FB_FRE_VERY_HIGH_NE FB_FRE_VERY_HIGH_SNR
Raw (noisy) - 5.0013+-0.0005 38.4197+-0.0005 0.9528+-0.0000 0.009585+-0.000001 0.000145+-0.000000 0.012013+-0.000001 9.502945+-0.000967 -19.5391+-0.0007 0.308110+-0.000111 10.2259+-0.0031 68.744539+-0.029754 -36.7371+-0.0038 31.665301+-0.014444 -29.9967+-0.0040 0.168114+-0.000000 48.3333-73.5333 0.582273+-0.000219 4.7300+-0.0031 0.283209+-0.000000 6.3333-23.1333 0.363669+-0.000022 8.7967+-0.0007 0.425271+-0.000000 23.1333-48.3333 0.362916+-0.000190 8.8104+-0.0045 0.001317+-0.000000 73.5333-90.3333 5.996074+-0.000881 -15.2461+-0.0005
UNet 7.76 12.6735+-0.0009 46.0919+-0.0009 0.9909+-0.0000 0.002779+-0.000000 0.000025+-0.000000 0.004961+-0.000001 1.481825+-0.000701 -3.4074+-0.0040 0.222778+-0.000029 13.0481+-0.0011 9.008784+-0.003577 -19.0862+-0.0034 4.219501+-0.002957 -12.4921+-0.0066 0.168114+-0.000000 48.3333-73.5333 0.239523+-0.000217 12.4398+-0.0074 0.283209+-0.000000 6.3333-23.1333 0.216420+-0.000178 13.3066+-0.0068 0.425271+-0.000000 23.1333-48.3333 0.191949+-0.000036 14.3481+-0.0016 0.001317+-0.000000 73.5333-90.3333 1.547839+-0.002906 -3.6236+-0.0174
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support