Skip to content

Multi-task learning for low-frequency extrapolation and elastic model building

Notifications You must be signed in to change notification settings

ovcharenkoo/mtl_low

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multi-task learning for low-frequency extrapolation and elastic model building from seismic data

by Ovcharenko Oleg, Vladimir Kazei, Tariq Alkhalifah and Daniel Peter. This repository contains the general workflow and synthetic data experiments reported in my Ph.D. dissertation and our paper at IEEE Transactions on Geoscience and Remote Sensing.

Note that examples below include experiments on synthetic data only due to the copyright associated with publishing the field data results.

workflow

Abstract

Low-frequency signal content in seismic data as well as a realistic initial model are key ingredients for robust and efficient full-waveform inversions. However, acquiring low-frequency data is challenging in practice for active seismic surveys. Data-driven solutions show promise to extrapolate low-frequency data given a high-frequency counterpart. While being established for synthetic acoustic examples, the application of bandwidth extrapolation to field datasets remains non-trivial. Rather than aiming to reach superior accuracy in bandwidth extrapolation, we propose to jointly reconstruct low-frequency data and a smooth background subsurface model within a multi-task deep learning framework. We automatically balance data, model and trace-wise correlation loss terms in the objective functional and show that this approach improves the extrapolation capability of the network. We also design a pipeline for generating synthetic data suitable for field data applications. Finally, we apply the same trained network to synthetic and real marine streamer datasets and run an elastic full-waveform inversion from the extrapolated dataset.

Repository structure

All notebooks are set for inference / view by default. Meaning that these will not run any heavy calculations unless reset otherwise. Instead, these will use the pre-trained weights and data to partially reproduce results from the paper. The Need extra column indicates that you would need to install third-party software to properly run these notebooks (installation scripts created when building the Docker container).

Filename Need extra Description
ex0_create_training_dataset.ipynb Yes Generate training dataset of synthetic waveforms
ex1_unet_l.ipynb Train UNet to predict low-frequency data
ex2_multi_l.ipynb Train Multi-column network to predict low-frequency data
ex3_multi_lm.ipynb Train Multi-column network to predict low-frequency data and local subsurface model
ex4_multi_lc.ipynb Train Multi-column network to predict low-frequency data using extra trace-wise correlation loss term
ex5_multi_lcm.ipynb Train Multi-column network to predict low-frequency data and local subsurface model. Also use the trace-wise correlation loss to fit the data
ex6_fwi_marmousi_with_predicted.ipynb Yes Run / view full-waveform inversion from predicted low-frequency data and initial subsurface model
ex7_fwi_marmousi_without_predicted.ipynb Yes Run / view full-waveform inversion from bandlimited data and poor initial model
ex8_make_pictures.ipynb Compare all trained networks and make key figures
shared_data_loading.ipynb This notebook is called by ex1-5
pyapi_denise.py High-level interface for DENISE-Black-Edition software package for seismic waveform simulation and inversion
assets Folder with images for README
pretrained_files Download and place pre-trained data here
utils Code components

How to start

Follow instructions below to start a Docker container, download the data and install all required dependencies (DENISE, Madagascar). Note, that scripts folder will be created automatically.

Download the code

git clone https://github.com/ovcharenkoo/mtl_low.git
cd mtl_low/
bash run-docker.sh

Install third-party software and download the data (~14Gb)

cd /workspace/
bash install_denise.sh
bash install_madagascar.sh
bash download_data.sh
cd /workspace/project

Add Madagascar to path

source /workspace/project/madagascar/share/madagascar/etc/env.sh

Run the Jupyter Lab on the default port 8888

jupyter lab .

Prerequsites and dependencies

  • Python 3.8
  • PyTorch 1.8
  • CUDA 11.0
  • NVIDIA Docker runtime

For the rest of Python dependencies check requirements.txt.

The following dependencies are installed by following the instructions above. Alternatively, to run FWI and data generation notebooks on your machine (examples 0, 6 and 7) you would need to download and compile DENISE-Black-Edition software for numerical wave propagation, followed by changing relevant paths in aforementioned notebooks. Moreover, for generation of the training dataset from scratch, you would need to install Madagascar software for seismic data processing.

Downloads

Run scripts/download_data.sh or manually download and unzip files by running tar -xvf arhive.tar.gz and place the complete folders according to the table

Link Size Destination Description
data.tar.gz ~ 13 Gb ./pretrained_files/data/* training and validation datasets
trained_nets.tar.gz ~ 300 Mb ./pretrained_files/trained_nets/* Pre-trained network weights
fwi_outputs.tar.gz ~ 10 Mb ./pretrained_files/fwi_outputs/* Inverted subsurface models etc.

Acknowledgments

Our implementation is heavily influenced and contains code blocks from Inpainting GMCNN.

Contact

Please raise an issue or let me know if something works wrong [email protected]