This model is a deep learning-based classifier designed to detect skin lesions from images and classify them as Benign or Malignant. It utilizes a Convolutional Neural Network (CNN) trained on a dataset of labeled skin lesion images to achieve high classification accuracy.
1import torch
2from src.model import build_model
3
4device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
5model = build_model(num_classes=2).to(device)
6
7checkpoint = torch.load("lesion_detection_model.pth", map_location=device)
8model.load_state_dict(checkpoint['model_state_dict'])
9model.eval()
1from PIL import Image
2import torchvision.transforms as transforms
3
4transform = transforms.Compose([
5 transforms.Resize((224, 224)),
6 transforms.ToTensor(),
7 transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])
8])
9
10def preprocess_image(image_path):
11 image = Image.open(image_path).convert("RGB")
12 return transform(image).unsqueeze(0).to(device)
1def predict(image_tensor):
2 with torch.no_grad():
3 output = model(image_tensor)
4 probabilities = torch.nn.functional.softmax(output, dim=1).cpu().numpy()[0]
5 return {"Benign": probabilities[0], "Malignant": probabilities[1]}
6
7image_tensor = preprocess_image("example.jpg")
8prediction = predict(image_tensor)
9print(prediction)
1import gradio as gr
2
3iface = gr.Interface(
4 fn=predict,
5 inputs=[gr.Image(type="numpy", sources=["upload", "webcam"])],
6 outputs=gr.Label(),
7 title="Skin Lesion Classification",
8 description="Upload an image or use your webcam to classify skin lesions."
9)
10
11iface.launch()