[Explainer] General approaches + example code (Unet)

Seismic Facies Identification Challenge

INTRODUCTION: This NoteBook is prepared to share some knowledge and ideas for the online Seismic Facies Identification Challenge. The original challenge link is: https://www.aicrowd.com/challenges/seismic-facies-identification-challenge


Section 1. Introduction of 3D segmentation schema
Section 2. Unet example
Section 3. Discussion or thoughts

Section 1. Introduction of 3D segmentation schema

Four major deep learning schemas of 3D segmentation problem:

  1. 2D fully convolutional networks (FCN)
    Such as U-Net, DCAN. First apply 2D segmentation for each 2D image slice, then concatenate all images together to obtain the 3D segmentation.
    2.Advantages*: easy to use, 2D image can be generated by X, Y, Z-axis.
    3.Disadvantages*: treat each 2D image independently without considering the connection. accuracy may be low.
  2. 3D convlution
    3D convolution can directly be applied, or hybrid with the 2D convolution. The big 3D data matrix will be chopped into smaller 3D blocks for 3D convolution.
    5.Advantages*: the connection between data points are under consideration but the inter-connection part of each 3D blocks may need extra efforts.
    6.Disadvantages*: model is more complicated, larger memory needed
  3. Tri-planar schemes
    For each orthogonal plane, apply the 2D convolutional networks; then voxel classification.
    8.Advantages*: easy to understand and apply.
    9.Disadvantages*: May need to justify model architecture for each orthogonal plane. voxel classificiation is time-consuming
  4. recurrent Neural Networks
    With 2D FCN for each 2D image slice, apply RNN or LSTM to take the nearby pixel value into consideration.
    11.Advantages*: RNN or LSTM can take use of the nearby pixel values, therefore, easier to achieve higher performance.
    12.Disadvantages*: more complicated. Need to train two different sets of models. RNN or LSTM may need further adjustment to achieve good performance.

Section 2. Unet example

A Unet example provided below. By applying following code, you can achieve accuracy>80%.

Check the code, please visit the notebook in my google drive: https://drive.google.com/file/d/1NpNCcWKUYl4DNtLu0Np67Sg5IVi7o1HM/view?usp=sharing

1 Like