--- license: cc-by-nc-sa-4.0 base_model: google/vit-base-patch16-224-in21k datasets: - Bubunur/dog-cat-panda pipeline_tag: image-classification library_name: transformers tags: - image-classification - vision - vit metrics: - accuracy - f1 model-index: - name: animals-classifier results: - task: type: image-classification dataset: name: Bubunur/dog-cat-panda type: Bubunur/dog-cat-panda split: test metrics: - type: accuracy value: 0.9702 - type: f1 name: F1 (macro) value: 0.9702 --- # Animals Classifier: Dog / Cat / Panda A Vision Transformer fine-tuned to classify images into 3 classes: **cat**, **dog**, and **panda** (giant panda). Base model: [google/vit-base-patch16-224-in21k](https://huggingface.co/google/vit-base-patch16-224-in21k) ## Usage ```python from transformers import pipeline clf = pipeline("image-classification", model="Bubunur/animals-classifier") clf("photo.jpg") # [{'label': 'cat', 'score': 0.93}, ...] ``` ## Results Evaluated on the held-out test split (369 images, 123 per class): | Class | Precision | Recall | F1 | |---|---|---|---| | Cat | 0.9667 | 0.9431 | 0.9547 | | Dog | 0.9444 | 0.9675 | 0.9558 | | Panda | 1.0000 | 1.0000 | 1.0000 | | **Overall accuracy** | | | **0.9702** | Confusion matrix (rows = true, columns = predicted): | | Cat | Dog | Panda | |---|---|---|---| | **Cat** | 116 | 7 | 0 | | **Dog** | 4 | 119 | 0 | | **Panda** | 0 | 0 | 123 | ## Training data [Bubunur/dog-cat-panda](https://huggingface.co/datasets/Bubunur/dog-cat-panda): photos collected from iNaturalist (Creative Commons licenses only). The raw data contained many non-photo observations (skulls, bones, tracks, empty camera-trap frames), so the dataset was cleaned with zero-shot filtering by [CLIP ViT-L/14](https://huggingface.co/openai/clip-vit-large-patch14) (confidence threshold 0.6) and balanced to 614 images per class. Split: 1,252 train / 221 validation / 369 test. ## Training procedure - Epochs: 8 (best checkpoint: epoch 6, selected by validation accuracy) - Learning rate: 5e-5, warmup ratio 0.06, weight decay 0.01 - Batch size: 16 - Label smoothing: 0.1 - Mixed precision (fp16) on a single T4 GPU - Augmentations (train only): random resized crop (70–100%), horizontal flip, rotation (±15°), color jitter (brightness / contrast / saturation 0.3) ## Limitations - **Only 3 classes.** Every input is assigned to cat, dog, or panda, even if it shows something else (e.g. a fox will be classified as a dog or a cat). - **Confidence scores are capped at ~0.93** because of label smoothing (0.1). A score of 0.93 means maximum confidence, not uncertainty. - **Cat/dog confusion** remains on hard images: small or distant animals, partially hidden animals, fluffy small dog breeds. - **The test set was filtered by CLIP**, so it may be easier than real-world images, and the reported accuracy may be optimistic. ## License Released under **CC BY-NC-SA 4.0** to match the license of the training data (which includes CC BY-NC and CC BY-SA images). Non-commercial use only.