Spaces:
Sleeping
Sleeping
dcavadia commited on
Commit Β·
8f09793
1
Parent(s): d97d634
update ui style
Browse files- src/ui/styles.py +82 -14
src/ui/styles.py
CHANGED
|
@@ -37,27 +37,95 @@ def create_theme():
|
|
| 37 |
|
| 38 |
def get_header_html() -> str:
|
| 39 |
"""Get HTML for application header."""
|
| 40 |
-
|
| 41 |
-
return f"""
|
| 42 |
<div class="header">
|
| 43 |
-
<
|
| 44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
</div>
|
| 46 |
-
<p style="margin-top:6px;">
|
| 47 |
-
Upload a dermatoscopic image to see the predicted class, confidence, and probability distribution.
|
| 48 |
-
</p>
|
| 49 |
"""
|
| 50 |
|
|
|
|
| 51 |
def get_footer_html() -> str:
|
| 52 |
"""Get HTML for application footer."""
|
| 53 |
from ..config.settings import AppConfig
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
|
| 62 |
def get_model_info_html() -> str:
|
| 63 |
"""Get HTML for model information."""
|
|
|
|
| 37 |
|
| 38 |
def get_header_html() -> str:
|
| 39 |
"""Get HTML for application header."""
|
| 40 |
+
return """
|
|
|
|
| 41 |
<div class="header">
|
| 42 |
+
<div style="display: flex; align-items: center; gap: 16px; margin-bottom: 8px;">
|
| 43 |
+
<h1 style="margin:0; background: linear-gradient(135deg, #e11d48, #be185d);
|
| 44 |
+
-webkit-background-clip: text; -webkit-text-fill-color: transparent;
|
| 45 |
+
background-clip: text;">
|
| 46 |
+
MelanoScope AI
|
| 47 |
+
</h1>
|
| 48 |
+
<span class="badge" style="background: #f1f5f9; color: #334155; font-weight: 600;">
|
| 49 |
+
Research Project
|
| 50 |
+
</span>
|
| 51 |
+
<span class="badge" style="background: #dcfce7; color: #166534; font-weight: 600;">
|
| 52 |
+
Live Demo
|
| 53 |
+
</span>
|
| 54 |
+
</div>
|
| 55 |
+
|
| 56 |
+
<p style="font-size: 18px; color: #475569; margin: 8px 0; font-weight: 500;">
|
| 57 |
+
<strong>Advanced CNN-based Dermatoscopic Image Classification System</strong>
|
| 58 |
+
</p>
|
| 59 |
+
|
| 60 |
+
<div style="background: linear-gradient(135deg, #f8fafc, #f1f5f9);
|
| 61 |
+
padding: 16px; border-radius: 12px; border-left: 4px solid #e11d48;
|
| 62 |
+
margin: 12px 0;">
|
| 63 |
+
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
| 64 |
+
gap: 12px; font-size: 14px; color: #64748b;">
|
| 65 |
+
<div>π <strong>Research Institution:</strong> Universidad Central de Venezuela</div>
|
| 66 |
+
<div>π¬ <strong>Domain:</strong> Computer Vision in Medical Diagnostics</div>
|
| 67 |
+
<div>π― <strong>Achievement:</strong> 94% Classification Accuracy</div>
|
| 68 |
+
<div>β‘ <strong>Architecture:</strong> NFNet + ONNX Runtime Optimization</div>
|
| 69 |
+
</div>
|
| 70 |
+
</div>
|
| 71 |
+
|
| 72 |
+
<p style="margin-top: 12px; color: #64748b; font-size: 14px; line-height: 1.6;">
|
| 73 |
+
<strong>Upload a dermatoscopic image</strong> to experience real-time CNN inference with
|
| 74 |
+
comprehensive medical information retrieval. This system demonstrates production-ready
|
| 75 |
+
AI deployment capabilities with sub-second latency and clinical-grade accuracy.
|
| 76 |
+
<br><br>
|
| 77 |
+
<em style="color: #dc2626; font-weight: 500;">β οΈ Research prototype β’ Not for clinical diagnosis β’ Educational purposes only</em>
|
| 78 |
+
</p>
|
| 79 |
</div>
|
|
|
|
|
|
|
|
|
|
| 80 |
"""
|
| 81 |
|
| 82 |
+
|
| 83 |
def get_footer_html() -> str:
|
| 84 |
"""Get HTML for application footer."""
|
| 85 |
from ..config.settings import AppConfig
|
| 86 |
+
|
| 87 |
+
return f"""
|
| 88 |
+
<div class='footer' style="background: #f8fafc; padding: 20px; border-radius: 12px; margin-top: 24px;">
|
| 89 |
+
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 16px; text-align: left;">
|
| 90 |
+
|
| 91 |
+
<div>
|
| 92 |
+
<h4 style="color: #1e293b; margin: 0 0 8px 0; font-size: 14px;">π Academic Research</h4>
|
| 93 |
+
<p style="margin: 0; font-size: 12px; color: #64748b; line-height: 1.4;">
|
| 94 |
+
<strong>Institution:</strong> {AppConfig.INSTITUTION}<br>
|
| 95 |
+
<strong>Research Focus:</strong> Deep Learning in Medical Imaging<br>
|
| 96 |
+
<strong>Thesis Project:</strong> CNN Architecture Optimization
|
| 97 |
+
</p>
|
| 98 |
+
</div>
|
| 99 |
+
|
| 100 |
+
<div>
|
| 101 |
+
<h4 style="color: #1e293b; margin: 0 0 8px 0; font-size: 14px;">βοΈ Technical Implementation</h4>
|
| 102 |
+
<p style="margin: 0; font-size: 12px; color: #64748b; line-height: 1.4;">
|
| 103 |
+
<strong>Model:</strong> NFNet-L0 (99.8Mβ3.2M parameters)<br>
|
| 104 |
+
<strong>Optimization:</strong> ONNX Runtime + Quantization<br>
|
| 105 |
+
<strong>Deployment:</strong> Gradio + HuggingFace Spaces
|
| 106 |
+
</p>
|
| 107 |
+
</div>
|
| 108 |
+
|
| 109 |
+
<div>
|
| 110 |
+
<h4 style="color: #1e293b; margin: 0 0 8px 0; font-size: 14px;">π Performance Metrics</h4>
|
| 111 |
+
<p style="margin: 0; font-size: 12px; color: #64748b; line-height: 1.4;">
|
| 112 |
+
<strong>Accuracy:</strong> 94% on validation set<br>
|
| 113 |
+
<strong>Latency:</strong> <50ms inference time<br>
|
| 114 |
+
<strong>Efficiency:</strong> 99.8% parameter reduction
|
| 115 |
+
</p>
|
| 116 |
+
</div>
|
| 117 |
+
|
| 118 |
+
</div>
|
| 119 |
+
|
| 120 |
+
<div style="border-top: 1px solid #e2e8f0; margin-top: 16px; padding-top: 12px; text-align: center;">
|
| 121 |
+
<p style="margin: 0; font-size: 11px; color: #94a3b8;">
|
| 122 |
+
Model Version: {AppConfig.VERSION} β’ Last Updated: {AppConfig.LAST_UPDATE} β’
|
| 123 |
+
Research & Development by Daniel Cavadia
|
| 124 |
+
</p>
|
| 125 |
+
</div>
|
| 126 |
+
</div>
|
| 127 |
+
"""
|
| 128 |
+
|
| 129 |
|
| 130 |
def get_model_info_html() -> str:
|
| 131 |
"""Get HTML for model information."""
|