--- license: gpl-3.0 language: - en metrics: - accuracy - sensitivity - specificity base_model: google/mobilenet-v2 new_version: "true" pipeline_tag: image-classification library_name: pytorch tags: - medical - oral-cancer - healthcare - mobileNet - image-classification - pytorch eval_results: accuracy: 0.95 sensitivity: 0.93 specificity: 0.91 --- # Umlomo – Oral Cancer Detection Model This model is a fine‑tuned **MobileNetV2** for binary classification of oral cavity images into **Normal** or **Oral Cancer**. It is part of the MySmile project, an AI‑powered oral health screening tool designed to empower individuals with early risk assessment. ## Model Details - **Base Architecture:** MobileNetV2 (pretrained on ImageNet) - **Fine‑tuned Dataset:** Curated oral images (normal and cancerous) - **Input Size:** 224×224 RGB - **Output:** Two classes – `Normal` and `Oral Cancer` - **Framework:** PyTorch ## Intended Use This model is intended for research and educational purposes within the MySmile screening application. It provides a preliminary risk assessment and is **not a substitute for professional medical diagnosis**. ## How to Use ### Installation ```bash pip install torch torchvision pillow import torch from torchvision import transforms from PIL import Image # Load model model = torch.hub.load('mysmile/umlomo', 'model', trust_repo=True) model.eval() # Preprocess image transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) image = Image.open('oral_photo.jpg').convert('RGB') input_tensor = transform(image).unsqueeze(0) # Inference with torch.no_grad(): outputs = model(input_tensor) probs = torch.softmax(outputs, dim=1) pred_idx = torch.argmax(probs, dim=1).item() class_names = ['Normal', 'Oral Cancer'] print(f"Prediction: {class_names[pred_idx]}, Confidence: {probs[0][pred_idx]:.2f}") ``` ---