CoolFace
Datasetpublic

ArinRoths/StairvsNonStair_Dataset

24-679 (Fall 2026): Stairs and Non-Stair Images ArinRoths/StairvsNonStair_Dataset Photos of stairs and non-stairs scenes, prepared as square RGB images with multiple separately generated training variants. The goal of this dataset is to classify whether or not stairs are present in an image. Source and task The original dataset contains 32 images that I collected and organized into stairs and non_stairs folders. There are 16 original stairs images and 16 original… See the full description on the dataset page: https://huggingface.co/datasets/ArinRoths/StairvsNonStair_Dataset.

sourceHugging Faceupdated 7d agoView on Hugging Face
0likes67downloads
Dataset Card

24-679 (Fall 2026): Stairs and Non-Stair Images

ArinRoths/StairvsNonStair_Dataset

Photos of stairs and non-stairs scenes, prepared as square RGB images with multiple separately generated training variants. The goal of this dataset is to classify whether or not stairs are present in an image.

Source and task

The original dataset contains 32 images that I collected and organized into stairs and non_stairs folders. There are 16 original stairs images and 16 original non-stairs images. The folder containing each image determines its label. 0 = non-stairs; 1 = stairs.

Course: 24-679, Fall 2026, Carnegie Mellon University. Repository maintainer: the account shown above.

Fields

FieldMeaning and modeling role
imagePrepared RGB pixels; the model's image input.
labelClassification target: 0 = non-stairs; 1 = stairs.
label_nameReadable target description; exclude from model inputs.
source_id, parent_idUnique prepared/augmented example key and its original source key; provenance only.
augmentation, is_augmentedMethod identifier and random-augmentation flag; provenance only.

Splits and original-source counts

These counts are computed from the packaged splits for this run.

SplitOriginal rowsSynthetic rowsTotal rows
train22352374
validation505
test505

Class counts include synthetic rows in training only.

SplitLabelRows
train0187
train1187
validation02
validation13
test03
test12

Requested holdout fraction: 30%; test receives 50% of that holdout. Small-sample rounding changes the realized proportions. The first split uses seed 24679, and the holdout split uses seed 24680.

Split original image indices with class stratification before creating any random variants. Validation and test contain only unaugmented prepared parents. A source and its descendants never cross boundaries. The augmented rows are not split again.

Augmentation and preprocessing

Prepared image size in this run: 224 × 224 RGB. Padding color is (128, 128, 128).

All splits receive the same deterministic preparation: apply EXIF orientation, convert to RGB, resize while preserving aspect ratio, and pad to the configured square size. Working copies discard camera metadata; native source files remain separate. Downstream models still need their own checkpoint-specific input processing.

Each original training source contributes its prepared parent and sixteen independent variants; transforms are not stacked. Four variants are created using each augmentation method: brightness, rotation, contrast, and Gaussian blur. The current notebook uses brightness factors 0.4–0.7 or 1.4–2.0; rotation of 15–30 degrees in either direction on a fixed canvas; contrast factors 0.35–0.65 or 1.5–2.2; and Gaussian blur. Lower/higher brightness and contrast ranges are chosen with equal probability. Rotation fills exposed corners with a color derived from the parent and can clip edges.

The stored identifiers mild_brightness, small_rotation, mild_contrast, and mild_gaussian_blur refer to the four augmentation methods used in the notebook.

Training methodStored rows
mild_brightness88
mild_contrast88
mild_gaussian_blur88
none22
small_rotation88

Intended use and limitations

This dataset is intended for image classification and for practicing image preparation, augmentation, and transfer learning. The original collection is small, with only 32 independent images. Backgrounds, lighting, camera angles, and differences between locations could affect the model instead of only the presence of stairs. Brightness and contrast changes can hide details, rotation can crop parts of an image, and blur can make stairs harder to see. The augmented images also do not add new independent scenes because they are all based on the original training images. The parent and variant galleries should be inspected to make sure the augmentations still preserve the correct label.

Privacy and licensing

The packaged dataset does not include the original image filenames. The preparation workflow uses anonymous source IDs, and prepared image bytes do not retain camera metadata. The images were reviewed to avoid including faces, people, or other personally identifiable or sensitive information. No license was specified for this dataset.

Load and compare

python
from datasets import load_dataset
ds = load_dataset("ArinRoths/StairvsNonStair_Dataset")
# Train with ds["train"], choose settings with ds["validation"], then score ds["test"].

Use an account with access if repository visibility changes. For reproducible comparisons, record the dataset commit and model/environment versions. Regenerate this card with the preparation notebook after changing the data; its counts are calculated from the actual packaged splits. The YAML schema and split configuration are preserved from the upload.

AI Usage Disclosure

I used ChatGPT to help understand the assignment reqirements and how the code from last week would need to changed based on the data set I collected. This included learned some new functions and replacing others slightly. I also used it to debug my code.