Spaces:
Sleeping
Sleeping
File size: 7,195 Bytes
faf90bc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "fa37d83b-2543-4b97-a6dd-f54fc56bfd9a",
"metadata": {},
"outputs": [],
"source": [
"import streamlit as st\n",
"import torch\n",
"from PIL import Image\n",
"import numpy as np\n",
"import torch.nn.functional as F"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "cfa28009-cc5a-42bf-a5a9-b1cbaeb09fa2",
"metadata": {},
"outputs": [],
"source": [
"# Import custom modules\n",
"from models.resnet_model import MalariaResNet50\n",
"from gradcam import visualize_gradcam"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "4dbb399f-01b7-4143-97d0-0fc4b1a33148",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2025-05-28 22:57:39.942 WARNING streamlit.runtime.scriptrunner_utils.script_run_context: Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-05-28 22:57:39.948 WARNING streamlit.runtime.scriptrunner_utils.script_run_context: Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-05-28 22:57:41.270 \n",
" \u001b[33m\u001b[1mWarning:\u001b[0m to view this Streamlit app on a browser, run it with the following\n",
" command:\n",
"\n",
" streamlit run C:\\Users\\HP\\miniconda3\\envs\\pytorch_env\\lib\\site-packages\\ipykernel_launcher.py [ARGUMENTS]\n",
"2025-05-28 22:57:41.272 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-05-28 22:57:41.274 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-05-28 22:57:41.275 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n"
]
}
],
"source": [
"st.set_page_config(page_title=\"𧬠Malaria Cell Classifier\", layout=\"wide\")\n",
"st.title(\"𧬠Malaria Cell Classifier with Grad-CAM\")\n",
"st.write(\"Upload a blood smear image and the model will classify it as infected or uninfected, and highlight key regions using Grad-CAM.\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "cfba0e0a-094e-491f-8d7b-abe0643344dc",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2025-05-28 22:57:41.317 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-05-28 22:57:41.319 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-05-28 22:57:41.320 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-05-28 22:57:41.833 Thread 'Thread-3': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-05-28 22:57:41.840 Thread 'Thread-3': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Downloading: \"https://download.pytorch.org/models/resnet50-11ad3fa6.pth\" to C:\\Users\\HP/.cache\\torch\\hub\\checkpoints\\resnet50-11ad3fa6.pth\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 97.8M/97.8M [00:09<00:00, 11.2MB/s]\n",
"2025-05-28 22:57:53.490 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-05-28 22:57:53.497 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n"
]
}
],
"source": [
"# Load Model\n",
"@st.cache_resource\n",
"def load_model():\n",
" model = MalariaResNet50(num_classes=2)\n",
" model.load_state_dict(torch.load(\"models/malaria_model.pth\", map_location=torch.device('cpu')))\n",
" model.eval()\n",
" return model\n",
"\n",
"model = load_model()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "11f5d404-6c4c-4484-a11a-acede1e5ab7d",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2025-05-28 22:57:53.586 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-05-28 22:57:53.592 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-05-28 22:57:53.594 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-05-28 22:57:53.600 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-05-28 22:57:53.606 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n"
]
}
],
"source": [
"# Upload Image\n",
"uploaded_file = st.file_uploader(\"Choose an image...\", type=[\"jpg\", \"png\", \"jpeg\"])\n",
"\n",
"if uploaded_file is not None:\n",
" # Save uploaded image temporarily\n",
" temp_image_path = f\"temp_{uploaded_file.name}\"\n",
" with open(temp_image_path, \"wb\") as f:\n",
" f.write(uploaded_file.getbuffer())\n",
"\n",
" # Display original image\n",
" image = Image.open(uploaded_file).convert(\"RGB\")\n",
" st.image(image, caption=\"Uploaded Image\", use_column_width=True)\n",
"\n",
" # Predict button\n",
" if st.button(\"Predict\"):\n",
" with st.spinner(\"Classifying...\"):\n",
" # Run prediction and show Grad-CAM\n",
" pred_label, confidence = model.predict(temp_image_path, device='cpu', show_image=False)\n",
" \n",
" st.success(f\"β
Prediction: **{pred_label}** | Confidence: **{confidence:.2%}**\")\n",
"\n",
" # Show Grad-CAM\n",
" st.subheader(\"π Grad-CAM Visualization\")\n",
" visualize_gradcam(model, temp_image_path)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8fa9705e-7775-489a-ad09-27e96793dcc3",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.17"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
|