--- license: mit pipeline_tag: image-classification tags: - onnx - onnxruntime - image-classification - binary-classification library_name: onnx --- # cstria0106/shit-detector ONNX image classifier for detecting whether an image contains feces or toilet waste/staining under this project's labeling policy. ## Try It In Your Browser **Live browser demo:** [https://huggingface.co/spaces/cstria0106/shit-detector-browser](https://huggingface.co/spaces/cstria0106/shit-detector-browser) Runs fully client-side: the demo downloads this ONNX model in the browser and runs inference locally with ONNX Runtime Web. ## Files - `shit_detector.onnx`: ONNX model exported with dynamic batch axis. - `metadata.json`: preprocessing values, threshold, class names, evaluation metrics, and deployment notes. - `inference.py`: minimal ONNX Runtime inference helper. - `requirements.txt`: runtime dependencies for the helper. ## Labels Class order: `['shit', 'not_shit']`. The positive class is `shit`. The default decision threshold is `0.149` on the positive-class probability. ## Dataset The model was trained on a project-specific binary image dataset. | Split | shit | not_shit | |---|---:|---:| | Train | 483 | 2,894 | | Validation | 120 | 686 | | Test | 189 | 1,003 | ## Training - Objective: 2-class cross entropy - Optimizer: AdamW - Learning rate: `1.5e-4` - Weight decay: `0.01` - Epochs: up to 80 - Best checkpoint selected by validation F1 - Backbone frozen for first 5 epochs, then unfrozen - Balanced sampling enabled with positive sampling fraction `0.40` - Augmentation: random resized crop, horizontal flip, color jitter - Positive-only color augmentation was used to improve robustness to color-shifted positive examples. ## Model Specs - Base model: `tf_efficientnet_b0.ns_jft_in1k` - Format: ONNX, opset `17` - Input size: `256 x 256` RGB image - Parameters: `4010110` - ONNX size: `15.34 MB` - Class order: `['shit', 'not_shit']` - Positive threshold: `0.149` ## Evaluation Snapshot - Precision: 93.51% - Recall: 91.53% - F1: 92.51% - ROC-AUC: 99.09% - PR-AUC: 97.42% These metrics come from the local evaluation set recorded in `metadata.json`; they are not a public benchmark. ## Intended Use This model is intended for project-specific binary image triage. It may produce false positives on visually similar brown food, stains, mud, and other hard negatives, and false negatives on small, occluded, color-shifted, or unusual positive cases. ## Runtime ```bash pip install -r requirements.txt python inference.py path/to/image.jpg ``` ## Deployment Target - Target: `lattepanda_n4120` - CPU: `Intel Celeron N4120` - Model parameters: `4010110` - ONNX size MB: `15.341004371643066`