Skip to page content
SAVRN
Search Plan a project

Open-weight model · Image classification

2026-24679-stairs-autogluon-predictor

by Perrin Woods pcwoods/2026-24679-stairs-autogluon-predictor

2026-24679-stairs-autogluon-predictor is an open-weight model for image classification from Perrin Woods, released under Apache License 2.0. Its published files total 86.5 MB.

This model classifies photographs as non-stairs (0) or stairs (1). It fine-tunes a pretrained ResNet-18 with AutoGluon MultiModal. Supply a pandas DataFrame with an image column of local image-file paths.

Parameters—
Context—
Weights86.5 MB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Model Card

By Perrin Woods, published under apache-2.0, revision bf5214abd157.

This model classifies photographs as non-stairs (0) or stairs (1). It fine-tunes a pretrained ResNet-18 with AutoGluon MultiModal. Supply a pandas DataFrame with an image column of local image-file paths. predict() returns 0 or 1, and predictproba() returns class probabilities. Input resolution and expected preprocessing Prepare new photos the same way as the dataset: convert to RGB and pad to a square before resizing. Otherwise, the center crop removes the edges of non-square photos, which may cut off the stairs. Source: Stairs vs. non-stairs photographs. Published splits were used unchanged. Augmentation pipeline. Augmentation happens at two stages. The dataset stores offline variants of…

Read Perrin Woods's full model card

Stairs vs. Non-Stairs Image Classifier

This model classifies photographs as non-stairs (0) or stairs (1). It fine-tunes a pretrained ResNet-18 with AutoGluon MultiModal.

Inputs and outputs

Supply a pandas DataFrame with an image column of local image-file paths. predict() returns 0 or 1, and predict_proba() returns class probabilities.

Label Meaning
0 Non-stairs
1 Stairs

Input resolution and expected preprocessing

Stage Processing
Dataset (before the model) RGB, 224 × 224, aspect ratio preserved with gray padding
Model, training Resize shorter side to 224, center crop 224 × 224, TrivialAugment, ImageNet normalization
Model, inference Resize shorter side to 224, center crop 224 × 224, ImageNet normalization

Prepare new photos the same way as the dataset: convert to RGB and pad to a square before resizing. Otherwise, the center crop removes the edges of non-square photos, which may cut off the stairs.

Data and training

Source: Stairs vs. non-stairs photographs. Published splits were used unchanged.

Partition Original photos Stored variants Total Non-stairs / stairs
Training 22 352 374 187 / 187
Validation 5 0 5 2 / 3
Test 5 0 5 3 / 2

Augmentation pipeline. Augmentation happens at two stages. The dataset stores offline variants of each training original, listed below; the dataset card documents transform strengths. Variants stay in training, and no parent_id crosses splits. During fitting, AutoMM also applies TrivialAugment on the fly, choosing one random operation per image per batch. Validation and test receive neither.

Stored augmentation Training rows
mild_brightness 88
mild_contrast 88
mild_gaussian_blur 88
none (originals) 22
small_rotation 88
Training setting Recorded value
Framework AutoGluon MultiModal 1.6.1
Image backbone timm resnet18, pretrained, fully fine-tuned (11.2 M parameters)
Preset and branch medium_quality; model.names = ["timm_image"]
Search space None; backbone fixed, other hyperparameters at preset defaults
Selection metric Validation accuracy
Fit budget and seed 900 s; 24679
Measured training 915.6 s; stopped by time limit in epoch 7 (22 steps)
Checkpoint selection Greedy-soup fusion of top 3 checkpoints (steps 11, 13, 14; each 0.80 val accuracy)
Environment Colab CPU (2 vCPU, 12.7 GB RAM, no GPU); Linux; Python 3.13.15; PyTorch 2.11.0+cpu

Evaluation

Metric Validation (5) Test (5)
Accuracy 0.800 (4/5) 0.800 (4/5)
Weighted F1 0.800 0.781
Baseline accuracy, always non-stairs — 0.600

Test confusion matrix:

Actual / predicted Non-stairs Stairs
Non-stairs 3 0
Stairs 1 1

Validation confusion matrix:

Actual / predicted Non-stairs Stairs
Non-stairs 2 0
Stairs 1 2

A 900s run resulted in validation accuracy of 0.80 by step 11. It did not improve after epoch 4.

Known failure modes - Missed stairs. The model leans toward non-stairs. The shorter run predicted it for every image, and the test error in this run is a stairs photo labeled non-stairs. - Few independent scenes. There are 22 training originals; the 352 variants alter lighting and geometry but add no new scenes. Backgrounds, lighting, and camera angle may act as shortcuts. - Untested inputs. Performance is not established on unpadded or non-square photos, other buildings, or stair-like patterns such as ramps, railings, and striped floors.

Load and predict

import zipfile
import pandas as pd
from huggingface_hub import hf_hub_download
from autogluon.multimodal import MultiModalPredictor

archive = hf_hub_download("pcwoods/2026-24679-stairs-autogluon-predictor", "autogluon_image_predictor_dir.zip")
zipfile.ZipFile(archive).extractall("stairs_model")
predictor = MultiModalPredictor.load("stairs_model")
print(predictor.predict(pd.DataFrame({"image": ["/path/to/photo.png"]})))

Both artifacts use pickle, so load only trusted files.

Licensing and provenance

The model is released under Apache-2.0; the pretrained ResNet-18 weights keep their upstream terms. The dataset card specifies no license and states that images were reviewed to exclude people and identifying information.

AI usage disclosure

Claude was utilized to help modify an existing notebook template. Additionally, Claude was used to assist with model card creation.

Identity and Version

Repository
pcwoods/2026-24679-stairs-autogluon-predictor
Publisher
Perrin Woods
Task
Image classification
Modality
Image
Library
autogluon
Parameters
Not stated by the source
Languages
Not stated by the source
Revision
bf5214abd15729b4ececd40f8e8e2759a3ca008d
First published
2026-09-22
Last updated
2026-09-23

Files and Weights

4 files, 86.5 MB in total.

Documentation1 file · 5.0 KB
Other2 files · 86.5 MB
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
README.mdDocumentation5.0 KB —
autogluon_image_predictor.pklOther44.9 MB 0f07d5334923
autogluon_image_predictor_dir.zipOther41.6 MB 9d1f1eb0d4c2
.gitattributesRepository1.5 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download from Perrin Woods

Released by Perrin Woods through its official repository on Hugging Face. Read the license.

Built From

  • Trained on (disclosed) ArinRoths/StairvsNonStair_Dataset

Questions About 2026-24679-stairs-autogluon-predictor

Can I use 2026-24679-stairs-autogluon-predictor commercially?

Yes. 2026-24679-stairs-autogluon-predictor is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

Similar Models

Model · Image classification

swinv2-tiny-patch4-window16-256

Microsoft

Swin Transformer v2 model pre-trained on ImageNet-1k at resolution 256x256. It was introduced in the paper Swin Transformer V2: Scaling Up Capacity and Resolution by Liu et al. and first released in this repository. Disclaimer: The team releasing Swin Transformer v2 did not write a model card for this model so this model card has been written by the Hugging Face team. The Swin Transformer is a type of Vision Transformer. It builds hierarchical feature maps by merging image patches (shown in gray) in deeper layers and has linear computation complexity to input image size due to computation of self-attention only within each local window (shown in red). It can thus serve as a general-purpose…

Open weights apache-2.0 transformers

Model · Image classification

AI-image-detector

Matthew Maybe

NOTE: Unless you are trying to detect imagery generated using older models such as VQGAN+CLIP, please use the updated version of this detector instead. This model is a proof-of-concept demonstration of using a ViT model to predict whether an artistic image was generated using AI. It was created in October 2022, and as such, the training data did not include any samples generated by Midjourney 5, SDXL, or DALLE-3. It still may be able to correctly identify samples from these more recent models due to being trained on outputs of their predecessors. Furthermore the intended scope of this tool is artistic images; that is to say, it is not a deepfake photo detector, and general computer imagery…

Open weights cc-by-4.0 transformers

Measured on device (edge-compat): Raspberry Pi 5 · LiteRT 2.2.0.dev20260804 · CPU/XNNPACK, 4 threads · 34.1 ms p50 (2026-08-31); browser · Chromium 151 (2026-08-11). Record: https://github.com/john-rocky/edge-compat/blob/main/cards/plantnet-300k-resnet18/CARD.md On-device fine-grained plant species identification — 1081 species — running fully on the LiteRT CompiledModel GPU delegate (no CPU fallback). A PlantNet-300K (NeurIPS 2021) ResNet18. ~16 ms/frame on a Pixel 8a. (mean [0.485,0.456,0.406], std [0.229,0.224,0.225]; center-crop then resize 224). Labels: class index i maps to the i-th species when the PlantNet-300K species-id strings are sorted (torchvision ImageFolder order); names…

Open weights apache-2.0 litert

Model · Image classification

traffic-sign-adverse-weather

Yy

Official model checkpoints for the solution in the Traffic Sign Recognition under Adverse Weather Competition. See classes.txt for the 25 traffic sign classes. For inference scripts, training code, and in-depth engineering retrospective, visit the GitHub Repository.

Open weights mit timm

Model · Image classification

tinyvit-5m-int8-imagenet

Core Epoch

TinyViT-5M (timm/tinyvit5m224.distin22kftin1k, Apache-2.0) quantized to INT8 with Kenosis — 128-image calibration, no retraining. 80.53% top-1 from a 9.2 MB single file, on ONNX Runtime or OpenVINO, CPU or GPU, no accelerator required. ImageNet-1K validation, 49,872 images (disjoint from the 128 calibration images). Measured on a CPU with AVX-VNNI; on CPUs without VNNI this model's INT8 top-1 sits ~0.9 below FP32 rather than 0.34. Input 1x3x224x224, RGB, /255, ImageNet mean/std. Output logits [1,1000], sorted-synset order. runclassify.py / evalimagenet.py reproduce the demo and table. tinyvit5m224int8kenosis.onnx (9,228,567 B) — SHA-256…

Open weights apache-2.0 onnx