size_categories:n<1K format:parquet modality:image library:datasets library:pandas library:mlcroissant library:polars region:us
---
dataset_info:
  features:
  - name: Image
    dtype: image
  - name: expert
    dtype: image
  - name: novice01
    dtype: image
  - name: novice02
    dtype: image
  - name: novice03
    dtype: image
  - name: novice04
    dtype: image
  - name: novice05
    dtype: image
  - name: novice06
    dtype: image
  - name: novice07
    dtype: image
  - name: novice08
    dtype: image
  - name: novice09
    dtype: image
  - name: novice10
    dtype: image
  - name: novice11
    dtype: image
  - name: novice12
    dtype: image
  - name: novice13
    dtype: image
  - name: novice14
    dtype: image
  - name: novice15
    dtype: image
  - name: novice16
    dtype: image
  - name: novice17
    dtype: image
  - name: novice18
    dtype: image
  - name: novice19
    dtype: image
  - name: novice20
    dtype: image
  - name: novice21
    dtype: image
  - name: novice22
    dtype: image
  - name: novice23
    dtype: image
  - name: novice24
    dtype: image
  - name: novice25
    dtype: image
  - name: novice26
    dtype: image
  - name: practitioner1
    dtype: image
  - name: practitioner2
    dtype: image
  - name: practitioner3
    dtype: image
  - name: practitioner4
    dtype: image
  - name: practitioner5
    dtype: image
  - name: practitioner6
    dtype: image
  - name: practitioner7
    dtype: image
  - name: practitioner8
    dtype: image
  splits:
  - name: train
    num_bytes: 94380057.0
    num_examples: 340
  - name: test_1
    num_bytes: 8980449.0
    num_examples: 30
  - name: test_2
    num_bytes: 8375732.0
    num_examples: 30
  download_size: 226074304
  dataset_size: 111736238.0
configs:
- config_name: default
  data_files:
  - split: train
    path: data/train-*
  - split: test_1
    path: data/test_1-*
  - split: test_2
    path: data/test_2-*
---
# CRACKS Dataset

## Abstract
Crowdsourcing annotations has created a paradigm shift in the availability of labeled data for machine learning. Availability of large datasets has accelerated progress in common knowledge applications involving visual and language data. However, specialized applications that require expert labels lag in data availability. One such application is fault segmentation in subsurface imaging. Detecting, tracking, and analyzing faults has broad societal implications in predicting fluid flows, earthquakes, and storing excess atmospheric CO2. However, delineating faults with current practices is a labor-intensive activity that requires precise analysis of subsurface imaging data by geophysicists. In this paper, we propose the CRACKS dataset to detect and segment faults in subsurface images by utilizing crowdsourced resources. We leverage Amazon Mechanical Turk to obtain fault delineations from sections of the Netherlands North Sea subsurface images from (i) 26 novices who have no exposure to subsurface data and were shown a video describing and labeling faults, (ii) 8 practitioners who have previously interacted and worked on subsurface data, (iii) one geophysicist to label 7636 faults in the region. Note that all novices, practitioners, and the expert segment faults on the same subsurface volume with disagreements between and among the novices and practitioners. Additionally, each fault annotation is equipped with the confidence level of the annotator. The paper provides benchmarks on detecting and segmenting the expert labels, given the novice and practitioner labels. Additional details along with the dataset links and codes are available at https://alregib.ece.gatech.edu/cracks-crowdsourcing-resources-for-analysis-and-categorization-of-key-subsurface-faults/.

## Dataset Labels
The dataset comes provided with 400 images of seismic sections. This can be found under the column `Image`. For each `Image`, labels for them were generated by 26 novices, 8 practitioners, and an expert. The columns are named accordingly: `expert` for the expert, `noviceX` for novice number X, and `practitionerX` for practiotioner number X. Each label is composed of 3 three which correspond to the confidence of existing fault:
- **Orange**: No fault (Certain)
- **Green**: Falut (Uncertain)
- **Blue**: Fault (Certain)

However, not all seismic images have all the corresponding labels as some are missing the `expert` label as well as other labels. These correspond to panda's `NaN` and are viewed in HuggingFace's dataset viewer as `Not supported with pagintation yet`.

## Installation and Usage
Provided is a sample code that downloads the dataset from HuggingFace and accesses the first `Image` and `novice01` label. It then loads it into a pytorch `DataLoader`:
```python
from datasets import load_dataset
from torch.utils.data import DataLoader

# Load the dataset from huggingface
cracks_train = load_dataset('gOLIVES/CRACKS', split='train')
cracks_test_1 = load_dataset('gOLIVES/CRACKS', split='test_1')
cracks_test_2 = load_dataset('gOLIVES/CRACKS', split='test_2')

# Accesses the first image and its first novice label
seismic_image = cracks_train[0]['Image']
novice_laebl = cracks_train[0]['novice01']

# Covert into a Format Usable by Pytorch
cracks_train = cracks_train.with_format("torch")

dataloader = DataLoader(cracks_train, batch_size=4)
for batch in dataloader:
    print(batch) 
```


## Links

**Associated Website**: https://alregib.ece.gatech.edu/
