Update app.py
Browse files
app.py
CHANGED
|
@@ -11,7 +11,7 @@ from typing import Tuple
|
|
| 11 |
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
|
| 12 |
|
| 13 |
# Constants
|
| 14 |
-
CLASS_NAMES = ["
|
| 15 |
LESION_COLORS = {
|
| 16 |
0: [0, 0, 0], # Background (black)
|
| 17 |
1: [255, 255, 0], # Bright lesions (yellow)
|
|
@@ -152,10 +152,6 @@ def create_lesion_overlay(original: Image.Image, mask: np.ndarray) -> Image.Imag
|
|
| 152 |
overlay[mask_resized == class_idx] = color
|
| 153 |
return Image.fromarray(cv2.addWeighted(overlay, 0.4, original_np, 0.6, 0))
|
| 154 |
|
| 155 |
-
def create_heatmap(prob_map: np.ndarray, original_size: Tuple[int, int]) -> np.ndarray:
|
| 156 |
-
resized = cv2.resize(prob_map, original_size)
|
| 157 |
-
return cv2.applyColorMap((resized * 255).astype(np.uint8), cv2.COLORMAP_JET)
|
| 158 |
-
|
| 159 |
def segment_image(image: Image.Image, model: nn.Module) -> dict:
|
| 160 |
processed_img = preprocess_segmenter(image)
|
| 161 |
img_pil = Image.fromarray(processed_img)
|
|
@@ -217,13 +213,9 @@ def main():
|
|
| 217 |
with st.spinner("Detecting lesions..."):
|
| 218 |
seg_results = segment_image(original_image, segmenter)
|
| 219 |
overlay = create_lesion_overlay(original_image, seg_results['mask'])
|
| 220 |
-
heat_bright = create_heatmap(seg_results['probs'][1], original_image.size)
|
| 221 |
-
heat_red = create_heatmap(seg_results['probs'][2], original_image.size) # Only class 2
|
| 222 |
|
| 223 |
with col2:
|
| 224 |
st.image(overlay, caption="Lesion Overlay", use_container_width=True)
|
| 225 |
-
st.image(heat_bright, caption="Bright Lesion Probability", use_container_width=True)
|
| 226 |
-
st.image(heat_red, caption="Red Lesion Probability", use_container_width=True)
|
| 227 |
|
| 228 |
# Metrics
|
| 229 |
st.write("**Lesion Analysis:**")
|
|
|
|
| 11 |
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
|
| 12 |
|
| 13 |
# Constants
|
| 14 |
+
CLASS_NAMES = ["Mild", "Moderate", "No_DR", "Proliferate_DR", "Severe"]
|
| 15 |
LESION_COLORS = {
|
| 16 |
0: [0, 0, 0], # Background (black)
|
| 17 |
1: [255, 255, 0], # Bright lesions (yellow)
|
|
|
|
| 152 |
overlay[mask_resized == class_idx] = color
|
| 153 |
return Image.fromarray(cv2.addWeighted(overlay, 0.4, original_np, 0.6, 0))
|
| 154 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 155 |
def segment_image(image: Image.Image, model: nn.Module) -> dict:
|
| 156 |
processed_img = preprocess_segmenter(image)
|
| 157 |
img_pil = Image.fromarray(processed_img)
|
|
|
|
| 213 |
with st.spinner("Detecting lesions..."):
|
| 214 |
seg_results = segment_image(original_image, segmenter)
|
| 215 |
overlay = create_lesion_overlay(original_image, seg_results['mask'])
|
|
|
|
|
|
|
| 216 |
|
| 217 |
with col2:
|
| 218 |
st.image(overlay, caption="Lesion Overlay", use_container_width=True)
|
|
|
|
|
|
|
| 219 |
|
| 220 |
# Metrics
|
| 221 |
st.write("**Lesion Analysis:**")
|