† Corresponding Author ‡ Project Lead
As shown in this workflow figure, we test the Seismic Foundation Model's performance in segmentation tasks and regression tasks, specifically in classification (i.e. seismic facies), segmentaion (i.e. seismic geobody), signal processing (i.e. denoising), inversion (i.e. reflectivity estimation), and interpolation.
This is a PyTorch/GPU implementation of the paper Seismic Foundation Model:
@article{sheng2023seismic,
title={Seismic Foundation Model (SFM): a new generation deep learning model in geophysics},
author={Sheng, Hanlin and Wu, Xinming and Si, Xu and Li, Jintao and Zhang, Sibio and Duan, Xudong},
journal={arXiv preprint arXiv:2309.02791},
year={2023}
}
- 2024.11.12: The article has been accepted by the Geophysics journal and is awaiting publication.
- 2023.9.7: Paper is released at arxiv, and code will be gradually released. ⌛⌛⌛
- 2023.8.7: Github Repository Initialization (copy from Meta-Transformer).
-
The pre-training instruction is in PRETRAIN.md.
-
The Fine-tuning instruction is in FINETUNE.md.
Model | Pretraining Size | Download |
---|---|---|
SFM-Base | 224 × 224 | [ckpt] |
SFM-Base-512 | 512 × 512 | [ckpt] |
SFM-Large | 224 × 224 | [ckpt] |
SFM-Large-512 | 512 × 512 | [ckpt] |
Task | Size | Download |
---|---|---|
PreTrain | 224 × 224 | [DatFile] |
Seismic Facies Classification | 768 × 768 | [DatFile] |
Seismic GeoBody Identification | 224 × 224 | [DatFile] |
Inversion (Reflectivity Estimation) | 224 × 224 | [DatFile] |
Signal Processing (Denoise) | 224 × 224 | [DatFile] |
Interpolation | 224 × 224 | [DatFile] |
To prepare the environment, please follow the following instructions.
# create virtual environment
conda create -n SFM python=3.9.12
conda activate SFM
# install pytorch
pip3 install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html
# install other requirements
pip install -r requirements.txt
# if you want to visualize the results as shown in SFM-Finetune/Application/visualization.ipynb
pip install jupyter notebook
python -m ipykernel install --user --name=SFM --display-name="Python (SFM)"
Place the downloaded dataset and model in the corresponding folder.
- If you want to obtain a foundation model pre-trained from scratch, Download the
Pretrain data
zip file inData
folder.
# First execute merge
zip -s 0 mae_data_more.zip --out pretrain.zip
# Unzip the merged compressed file
unzip pretrain.zip
- If you want to use our pre-trained model directly, Download
Pre-trained model
and place it in folderSFM-Pretrain/output_dir
cd SFM-Pretrain
mkdir output_dir
cd output_dir
- If you want to apply the model to downstream tasks, Download the DownStream Task data zip file in
Data
folder.
cd Data
unzip *.zip
-
Download the DownStream Facies Task model facies.pth and place it in folder
SFM-Finetune/Application/Facies/SFM-Finetune/
-
Download the DownStream Facies Data and place it in folder Data/ then
unzip *.zip
-
run the following code:
cd SFM-Finetune/Application
#Use jupyter notebbok to open visualization.ipynb
jupyter notebook