Spaces:
Sleeping
Sleeping
| title: Stop Sign Predictor | |
| emoji: 🦀 | |
| colorFrom: yellow | |
| colorTo: yellow | |
| sdk: gradio | |
| sdk_version: 5.47.2 | |
| app_file: app.py | |
| pinned: false | |
| license: mit | |
| # Stop Sign Classifier | |
| This Hugging Face Space hosts a **Gradio app** that predicts whether an uploaded traffic image contains a **Stop Sign**. | |
| It uses a **classmate’s AutoGluon MultiModal model** trained during Homework 2. | |
| --- | |
| ## Dataset & Model Card | |
| - **Dataset:** Traffic sign images (binary classification: Stop Sign vs. No Stop Sign). | |
| - **Dataset Information:** This app uses the [ecopus-sign--classification](https://huggingface.co/datasets/ecopus/sign_identification) The dataset is licensed under **MIT** and consists of **~300 records** in Parquet format (split into `original` and `augmented`) | |
| - **Model Repo:** [scottymcgee/image-classifier](https://huggingface.co/scottymcgee/image-classifier) | |
| - **Framework:** [AutoGluon MultiModal](https://auto.gluon.ai/stable/index.html) | |
| - **Task:** Binary classification → predict `Stop Sign` or `No Stop Sign`. | |
| ### Input Features | |
| | Feature | Type | Description | | |
| |---------|----------------|---------------------------| | |
| | Image | JPG/PNG/Webcam | Traffic scene input image | | |
| ### Label | |
| - `0 → 🚫 No Stop Sign` | |
| - `1 → 🛑 Stop Sign` | |
| --- | |
| ## App Interface | |
| - **Widgets:** | |
| - `Image Upload` (supports drag and drop or webcam). | |
| - `Confidence Threshold` slider (filter low confidence results). | |
| - **Output:** | |
| - Original uploaded image. | |
| - Preprocessed 256×256 version (what the model actually sees). | |
| - Human readable prediction with probabilities. | |
| - **Examples:** 3 preloaded example images for quick testing. | |
| - **Validation:** Ensures uploaded files are valid images and not oversized. | |
| --- | |
| ## Example Usage | |
| | Example Image | Predicted Class | | |
| |-------------------|-----------------| | |
| | `stop1.jpg` | 🛑 Stop Sign | | |
| | `no_stop1.jpg` | 🚫 No Stop Sign | | |
| | `stop2.jpg` | 🛑 Stop Sign | | |
| --- | |
| ## Technical Details | |
| - **Backend:** AutoGluon `MultiModalPredictor` loaded from classmate’s Hugging Face repo. | |
| - **Interface:** [Gradio](https://www.gradio.app/). | |
| - **Deployment:** Hugging Face Spaces (`sdk: gradio`). | |
| - **Environment:** Python 3.10, pinned requirements. | |
| --- | |
| ## Limitations | |
| - **Binary labels only:** App only distinguishes `Stop Sign` vs. `No Stop Sign`. | |
| - **Dataset limitations:** Accuracy depends heavily on dataset quality (lighting, occlusion, unusual traffic scenes). | |
| - **Threshold behavior:** High thresholds may filter out useful predictions. | |
| --- | |
| ## Future Improvements | |
| - Expand dataset to include more traffic sign types (yield, speed limit, etc.). | |
| - Add bounding box detection to highlight the Stop Sign in the image. | |
| - Display top-k predictions dynamically instead of threshold filtering. | |
| - Improve UI with tooltips and confidence visualization (bar chart). | |
| --- | |
| ## AI Disclosure | |
| This app was developed with support from AI assistance in: | |
| - Adding input validation and a configurable threshold slider | |
| - Streamlining the Gradio interface for better usability | |
| - Drafting the initial version of this README | |
| All core modeling and training artifacts come from a **classmate’s AutoGluon model**. | |
| --- | |
| Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference | |