license:cc-by-4.0 size_categories:1K<n<10K format:parquet modality:image library:datasets library:pandas library:mlcroissant library:polars region:us
---
license: cc-by-4.0
dataset_info:
  features:
  - name: image
    dtype: image
  - name: label
    dtype: int32
  splits:
  - name: train
    num_bytes: 115577717.952
    num_examples: 2304
  - name: valid
    num_bytes: 14060667.0
    num_examples: 288
  - name: test
    num_bytes: 14066929.0
    num_examples: 288
  download_size: 144692243
  dataset_size: 143705313.95200002
configs:
- config_name: default
  data_files:
  - split: train
    path: data/train-*
  - split: valid
    path: data/valid-*
  - split: test
    path: data/test-*
---

# The Bread Proofing Dataset

## Dataset Summary

The Bread Proofing Dataset provides 2,880 images of sliced bread and a proofing label of under-proofed, over-proofed, 
or well-proofed, corresponding to the values 0, 1, and 2, respectively. 

## Features
All data was collected and parsed from the /r/Breadit and /r/Sourdough subreddits, with raw data originating from 
[Academic Torrents](https://academictorrents.com/details/56aa49f9653ba545f48df2e33679f014d2829c10), as Reddit does not natively provide all available posts. The data spans from the 
beginning of each subreddit's creation to 31 December 2023. 

To download the raw data yourself, follow the instructions provided [here](https://www.reddit.com/r/pushshift/comments/1akrhg3/).
The [script provided](https://github.com/Watchful1/PushshiftDumps/blob/master/scripts/filter_file.py) in the 
above instructions was used to remove comments that made no mention of proofing. For images contained in a gallery, only the
first image was ingested into the dataset for simplicity's sake. All non-crumb pictures were removed manually using 
[Narrative Select](https://narrative.so/select). Of the 12,558 posts that mentioned proofing, 10,027 contained a non-deleted
image, and 3,802 contained a usable crumb image.

There are torrents available with more up-to-date posts, so more images could be collected in the future, but pursing 
alternative non-Reddit sources would likely yield better results. 

## Labels

OpenAI's gpt-4.0-mini model was provided the post title, post description, and all relevant post comments to
determine whether the bread was under, over, or perfectly proofed. Because the comments were inconclusive for some
posts, only 2,880 images were kept in the dataset. 

The total cost of labelling was ~$0.30 USD. 

## Image Cleansing 

All images were cropped and scaled to 512x512 such that rectangular images
had their long edge cropped (rather than compressed).

## Dataset Structure

The data is structured with a pre-defined 80/10/10 train/validate/test split. 

```
├── test
│   ├── ...
│   └── 288th jpg
├── train
│   ├── ...
│   └── 2304th jpg
└── validate
    ├── ... 
    └── 288th jpg
```

### Dataset Instance

```
{
  "image": Image,
  "label": int
}
```

## Known Limitations

The comments provided are from anonymous and unverified bakers who are operating with onyl the limited
information provided by the original poster. As such, the data has a moderate amount of noise. 
Further, some of the images provided are not ideal crumb shots and have poor lighting. 