Spaces:
Runtime error
Runtime error
| title: Pet Classification Comparison | |
| emoji: 🐾 | |
| colorFrom: purple | |
| colorTo: gray | |
| sdk: gradio | |
| sdk_version: 6.12.0 | |
| app_file: app.py | |
| pinned: false | |
| short_description: ViT vs CLIP vs OpenAI on 3 custom pet classes | |
| # Pet Classification Comparison | |
| This app compares 3 image classification approaches on pet images: | |
| - Fine-tuned ViT model ([vasanthi8134/oxford-pets-3class-vit](https://huggingface.co/vasanthi8134/oxford-pets-3class-vit)) | |
| - Zero-shot CLIP model (`openai/clip-vit-base-patch32`) | |
| - OpenAI vision model (LLM image classification) | |
| ## Dataset Used For Training | |
| - Hugging Face dataset loader: `load_dataset("pcuenq/oxford-pets")` | |
| - Original dataset source: Oxford-IIIT Pet dataset | |
| - Dataset used in this project: **custom 3-class subset** based on Oxford-IIIT Pet | |
| - Selected classes: | |
| - `Egyptian Mau` | |
| - `leonberger` | |
| - `samoyed` | |
| - Number of classes: **3** | |
| - Total images: **90** | |
| ### Custom Split | |
| The custom subset was created by selecting **30 images per class** and splitting them into: | |
| - **Train:** 60 images total (**20 per class**) | |
| - **Validation:** 15 images total (**5 per class**) | |
| - **Test:** 15 images total (**5 per class**) | |
| ## Preprocessing Steps | |
| ### Training transforms | |
| - Random resized crop | |
| - Random horizontal flip | |
| - Conversion to tensor | |
| - Normalization with ViT image processor values | |
| ### Validation / Test transforms | |
| - Resize | |
| - Center crop | |
| - Conversion to tensor | |
| - Normalization with ViT image processor values | |
| ## Trained Model | |
| - Base model: `google/vit-base-patch16-224-in21k` | |
| - Approach: **transfer learning / fine-tuning** | |
| - Fine-tuned model link: [https://huggingface.co/vasanthi8134/oxford-pets-3class-vit](https://huggingface.co/vasanthi8134/oxford-pets-3class-vit) | |
| ## Training Performance | |
| ### Training Setup | |
| | Parameter | Value | | |
| |---|---:| | |
| | Epochs | 5 | | |
| | Learning rate | 5e-5 | | |
| | Batch size | 8 | | |
| ### Final Evaluation | |
| | Metric | Value | | |
| |---|---:| | |
| | Validation accuracy | 1.0 | | |
| | Test accuracy | 1.0 | | |
| Because this project uses a small and simplified custom subset with only 3 classes, the fine-tuned model performs very well on this task. | |
| ## Evaluation Method | |
| The final model was evaluated on: | |
| - a **validation split** during training | |
| - a separate **test split** after training | |
| The model with the best validation performance was used as the final selected model. | |
| ## Example Image Results | |
| The table below reports example predictions from all 3 approaches. | |
| | Image | True Class | ViT Prediction | CLIP Prediction | OpenAI Prediction | | |
| |---|---|---|---|---| | |
| | `leonberger.jpg` | leonberger | leonberger (0.4457) | leonberger (1.0) | leonberger (0.95) | | |
| | `Egyptian_Mau.jpg` | Egyptian Mau | Egyptian Mau (0.4171) | Egyptian Mau (1.0) | Egyptian Mau (0.95) | | |
| ## Model Comparison | |
| This application compares: | |
| 1. **My fine-tuned ViT model** | |
| 2. **CLIP zero-shot classification** | |
| 3. **OpenAI vision classification** | |
| ### Short comparison | |
| - **My fine-tuned ViT model** is specialized for the selected 3 classes because it was trained on the custom subset. | |
| - **CLIP** works in a zero-shot setting and still performs well on clear images without task-specific fine-tuning. | |
| - **OpenAI vision** also performs well and returns a label, confidence score, and short reasoning. | |
| ## Hugging Face Links | |
| ### Model | |
| [https://huggingface.co/vasanthi8134/oxford-pets-3class-vit](https://huggingface.co/vasanthi8134/oxford-pets-3class-vit) | |
| ### App | |
| [https://huggingface.co/spaces/vasanthi8134/pet-classification-comparison](https://huggingface.co/spaces/vasanthi8134/pet-classification-comparison) | |
| ## Application Features | |
| The Hugging Face Space includes: | |
| - image upload | |
| - prediction from the fine-tuned ViT model | |
| - prediction from the zero-shot CLIP model | |
| - prediction from the OpenAI vision model | |
| - example images for quick testing | |
| - JSON output for direct comparison | |
| ## Final Selected Model | |
| The final selected model for the custom classification task is: | |
| - **ViT fine-tuned on the custom 3-class Oxford-IIIT Pet subset** | |
| It was selected because it is the project-specific transfer learning model required by the assignment and achieved perfect accuracy on the simplified validation and test splits. | |
| ## Notes | |
| This is a simplified educational computer vision project created to demonstrate: | |
| - transfer learning on custom data | |
| - Hugging Face model deployment | |
| - Hugging Face Space deployment | |
| - comparison between open-source and closed-source image classification approaches |