Learn practical skills, build real-world projects, and advance your career

Using CNN models (ResNet9) to classify the geological phenomenon using seismic reflection data.

The aim of this project was to use machine learning - convolutional neural networks (ResNet9) to identify whether images of seismic data contained particular feature classes. In this case, four features were extracted from the public data in the mid-north sea.

1/ Flat layers
2/ Gas Chimney
3/ Noise
4/ Salt

Dataset:

The dataset used in the project is 2D seismic reflection data. Seismic data basically is a large ultrasound of the underground.
Geophysical imaging (also known as geophysical tomography) is a minimally destructive geophysical technique that investigates the subsurface of a terrestrial planet. Geophysical imaging is a noninvasive imaging technique with a high parametrical and Spatio-temporal resolution. Geophysical imaging has evolved over the last 30 years due to advances in computing power and speed. It can be used to model a surface or object understudy in 2D or 3D as well as monitor changes.

For more info refer to the link:
https://en.wikipedia.org/wiki/Geophysical_imaging

Method:

1/ Design a training dataset of images by taking screenshots of data all at a standard scale. The images are not of similar size.
2/ Label the images so they can be classified and put into DataFrame.
3/ Noise images were generated by subsampling a few high noise screenshots with random patches.
4/ Randomly split the data within classes into training, validation and test data considering stratification (take the same percentage from each class).
5/ Increase data and create new features using image augmentation.
6/ Using data loader to load batches of images into the model.
7/ Training.
8/ Evaluating the model during training using the validation set.
9/ Testing the model.
10/ Save the project in Jovian.

!pip install jovian --upgrade --quiet

Importing libraries

Import Essintial libraries

import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import torch
import torchvision
import tarfile
from PIL import Image
import torchvision.models as models
import matplotlib.pyplot as plt
from tqdm.notebook import tqdm
import torchvision.transforms as T
from sklearn.metrics import f1_score
import torch.nn.functional as F
import torch.nn as nn
from torchvision.utils import make_grid
%matplotlib inline
from torchvision.datasets.utils import download_url
from torch.utils.data import Dataset, random_split, DataLoader
from torchvision.datasets import ImageFolder
from torchvision.transforms import ToTensor