Spaces:
Runtime error
Runtime error
Upload folder using huggingface_hub (part 22)
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- Dockerfile +77 -0
- Documentation/NeuroLens AI A Comparative Deep Learning Framework.pdf +3 -0
- Documentation/NeuroLens_AI_Report.docx +0 -0
- Documentation/NeuroLens_AI_Research_Article.docx +0 -0
- dataset_real/val/tumor/tumor_00130.jpg +0 -0
- dataset_real/val/tumor/tumor_00131.jpg +0 -0
- dataset_real/val/tumor/tumor_00132.jpg +0 -0
- dataset_real/val/tumor/tumor_00133.jpg +0 -0
- dataset_real/val/tumor/tumor_00134.jpg +0 -0
- dataset_real/val/tumor/tumor_00135.jpg +0 -0
- dataset_real/val/tumor/tumor_00136.jpg +0 -0
- dataset_real/val/tumor/tumor_00137.jpg +0 -0
- dataset_real/val/tumor/tumor_00138.jpg +0 -0
- dataset_real/val/tumor/tumor_00139.jpg +0 -0
- dataset_real/val/tumor/tumor_00140.jpg +0 -0
- dataset_real/val/tumor/tumor_00141.jpg +0 -0
- dataset_real/val/tumor/tumor_00142.jpg +0 -0
- dataset_real/val/tumor/tumor_00143.jpg +0 -0
- dataset_real/val/tumor/tumor_00144.jpg +0 -0
- dataset_real/val/tumor/tumor_00145.jpg +0 -0
- dataset_real/val/tumor/tumor_00146.jpg +0 -0
- dataset_real/val/tumor/tumor_00147.jpg +0 -0
- dataset_real/val/tumor/tumor_00148.jpg +0 -0
- dataset_real/val/tumor/tumor_00149.jpg +0 -0
- dataset_real/val/tumor/tumor_00150.jpg +0 -0
- dataset_real/val/tumor/tumor_00151.jpg +0 -0
- dataset_real/val/tumor/tumor_00152.jpg +0 -0
- dataset_real/val/tumor/tumor_00153.jpg +0 -0
- dataset_real/val/tumor/tumor_00154.jpg +0 -0
- dataset_real/val/tumor/tumor_00155.jpg +0 -0
- dataset_real/val/tumor/tumor_00156.jpg +0 -0
- dataset_real/val/tumor/tumor_00157.jpg +0 -0
- dataset_real/val/tumor/tumor_00158.jpg +0 -0
- dataset_real/val/tumor/tumor_00159.jpg +0 -0
- dataset_real/val/tumor/tumor_00160.jpg +0 -0
- dataset_real/val/tumor/tumor_00161.jpg +0 -0
- dataset_real/val/tumor/tumor_00162.jpg +0 -0
- dataset_real/val/tumor/tumor_00163.jpg +0 -0
- dataset_real/val/tumor/tumor_00164.jpg +0 -0
- dataset_real/val/tumor/tumor_00165.jpg +0 -0
- dataset_real/val/tumor/tumor_00166.jpg +0 -0
- dataset_real/val/tumor/tumor_00167.jpg +0 -0
- dataset_real/val/tumor/tumor_00168.jpg +0 -0
- dataset_real/val/tumor/tumor_00169.jpg +0 -0
- dataset_real/val/tumor/tumor_00170.jpg +0 -0
- dataset_real/val/tumor/tumor_00171.jpg +0 -0
- dataset_real/val/tumor/tumor_00172.jpg +0 -0
- dataset_real/val/tumor/tumor_00173.jpg +0 -0
- dataset_real/val/tumor/tumor_00174.jpg +0 -0
- dataset_real/val/tumor/tumor_00175.jpg +0 -0
Dockerfile
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Tri-Netra AI AI - HuggingFace Spaces (Docker SDK) image.
|
| 2 |
+
#
|
| 3 |
+
# Build target: a small public demo of the layered brain-MRI tumor pipeline.
|
| 4 |
+
# Inference is ONNX-only (~430 MB total for v3 UNet + T1c specialist + 3
|
| 5 |
+
# classifiers), so CPU on free Spaces is fast enough (~30-40 ms/image).
|
| 6 |
+
# The LLM explanation defaults to HuggingFace Inference Providers (open-weight
|
| 7 |
+
# Llama 3.3 70B + Gemma 3 27B IT via $HF_TOKEN Space secret); if no token is
|
| 8 |
+
# set the dashboard falls back to the deterministic radiology report which is
|
| 9 |
+
# rich on its own and zero-hallucination by construction.
|
| 10 |
+
#
|
| 11 |
+
# Model weights are NOT bundled into this image (the HF Space free-tier 1 GB
|
| 12 |
+
# repo cap is too small). dashboard.py downloads them from a separate HF
|
| 13 |
+
# Model repo (default: anannyavyas1/Tri-Netra-AI-Models) on first boot via
|
| 14 |
+
# huggingface_hub. See scripts/upload_models_to_hf.py for how to populate
|
| 15 |
+
# that Model repo from your local .pt -> .onnx exports.
|
| 16 |
+
|
| 17 |
+
FROM python:3.11-slim
|
| 18 |
+
|
| 19 |
+
# System deps: libgl/libglib for OpenCV (cv2), libgomp for ONNXruntime
|
| 20 |
+
# parallelism, curl for the Spaces health probe.
|
| 21 |
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 22 |
+
libgl1 \
|
| 23 |
+
libglib2.0-0 \
|
| 24 |
+
libgomp1 \
|
| 25 |
+
curl \
|
| 26 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 27 |
+
|
| 28 |
+
WORKDIR /app
|
| 29 |
+
|
| 30 |
+
# Install Python deps first so Docker layer caching speeds up rebuilds when
|
| 31 |
+
# code changes but requirements don't.
|
| 32 |
+
COPY requirements-spaces.txt /app/requirements-spaces.txt
|
| 33 |
+
RUN pip install --no-cache-dir --upgrade pip \
|
| 34 |
+
&& pip install --no-cache-dir -r requirements-spaces.txt
|
| 35 |
+
|
| 36 |
+
# Copy application code. We intentionally do NOT copy datasets, training
|
| 37 |
+
# scripts, or any model weights; only what the dashboard actually needs at
|
| 38 |
+
# request time. ONNX weights are fetched from anannyavyas1/Tri-Netra-AI-Models on
|
| 39 |
+
# first boot - see _ensure_onnx_models_downloaded() in dashboard.py.
|
| 40 |
+
COPY dashboard.py /app/dashboard.py
|
| 41 |
+
COPY src /app/src
|
| 42 |
+
COPY web_dashboard /app/web_dashboard
|
| 43 |
+
# Empty per-model directories so .pt/.onnx downloads land in predictable
|
| 44 |
+
# paths (find_weights_path searches these). Also drop in any small
|
| 45 |
+
# metrics .json that's present (for /metrics) - missing is fine.
|
| 46 |
+
COPY real_eval_current /app/real_eval_current
|
| 47 |
+
COPY segmentation_artifacts /app/segmentation_artifacts
|
| 48 |
+
|
| 49 |
+
# Spaces convention: PORT=7860 and bind 0.0.0.0. The dashboard reads both from
|
| 50 |
+
# environment so no CLI flag is needed.
|
| 51 |
+
ENV PORT=7860 \
|
| 52 |
+
HOST=0.0.0.0 \
|
| 53 |
+
PYTHONUNBUFFERED=1 \
|
| 54 |
+
PYTHONIOENCODING=utf-8 \
|
| 55 |
+
LOG_LEVEL=INFO
|
| 56 |
+
|
| 57 |
+
# Prefer ONNX over PyTorch on the inference path. Override with ONNX_DISABLE=1
|
| 58 |
+
# to debug-fall-back to the PyTorch path.
|
| 59 |
+
ENV ONNX_DISABLE=
|
| 60 |
+
|
| 61 |
+
# LLM defaults for the public demo. The deployer adds HF_TOKEN as a Space
|
| 62 |
+
# secret to enable the layered LLM pipeline; without it the dashboard returns
|
| 63 |
+
# the deterministic radiology report (still very rich + zero hallucinations).
|
| 64 |
+
ENV HF_MODEL_TEXT="meta-llama/Llama-3.3-70B-Instruct" \
|
| 65 |
+
HF_MODEL_VISION="google/gemma-3-27b-it"
|
| 66 |
+
|
| 67 |
+
# Where to fetch ONNX weights from on first boot. Point at your own Model
|
| 68 |
+
# repo if you forked.
|
| 69 |
+
ENV HF_MODELS_REPO="anannyavyas1/Tri-Netra-AI-Models"
|
| 70 |
+
|
| 71 |
+
EXPOSE 7860
|
| 72 |
+
|
| 73 |
+
# HF Spaces health probes /health (we expose it explicitly in dashboard.py).
|
| 74 |
+
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
|
| 75 |
+
CMD curl -fs http://localhost:${PORT}/health || exit 1
|
| 76 |
+
|
| 77 |
+
CMD ["python", "dashboard.py"]
|
Documentation/NeuroLens AI A Comparative Deep Learning Framework.pdf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a33aa8b71bd014fa7db56777c980280743196f84a381f1330c8ea451b8866fe4
|
| 3 |
+
size 652834
|
Documentation/NeuroLens_AI_Report.docx
ADDED
|
Binary file (35.2 kB). View file
|
|
|
Documentation/NeuroLens_AI_Research_Article.docx
ADDED
|
Binary file (36.2 kB). View file
|
|
|
dataset_real/val/tumor/tumor_00130.jpg
ADDED
|
dataset_real/val/tumor/tumor_00131.jpg
ADDED
|
dataset_real/val/tumor/tumor_00132.jpg
ADDED
|
dataset_real/val/tumor/tumor_00133.jpg
ADDED
|
dataset_real/val/tumor/tumor_00134.jpg
ADDED
|
dataset_real/val/tumor/tumor_00135.jpg
ADDED
|
dataset_real/val/tumor/tumor_00136.jpg
ADDED
|
dataset_real/val/tumor/tumor_00137.jpg
ADDED
|
dataset_real/val/tumor/tumor_00138.jpg
ADDED
|
dataset_real/val/tumor/tumor_00139.jpg
ADDED
|
dataset_real/val/tumor/tumor_00140.jpg
ADDED
|
dataset_real/val/tumor/tumor_00141.jpg
ADDED
|
dataset_real/val/tumor/tumor_00142.jpg
ADDED
|
dataset_real/val/tumor/tumor_00143.jpg
ADDED
|
dataset_real/val/tumor/tumor_00144.jpg
ADDED
|
dataset_real/val/tumor/tumor_00145.jpg
ADDED
|
dataset_real/val/tumor/tumor_00146.jpg
ADDED
|
dataset_real/val/tumor/tumor_00147.jpg
ADDED
|
dataset_real/val/tumor/tumor_00148.jpg
ADDED
|
dataset_real/val/tumor/tumor_00149.jpg
ADDED
|
dataset_real/val/tumor/tumor_00150.jpg
ADDED
|
dataset_real/val/tumor/tumor_00151.jpg
ADDED
|
dataset_real/val/tumor/tumor_00152.jpg
ADDED
|
dataset_real/val/tumor/tumor_00153.jpg
ADDED
|
dataset_real/val/tumor/tumor_00154.jpg
ADDED
|
dataset_real/val/tumor/tumor_00155.jpg
ADDED
|
dataset_real/val/tumor/tumor_00156.jpg
ADDED
|
dataset_real/val/tumor/tumor_00157.jpg
ADDED
|
dataset_real/val/tumor/tumor_00158.jpg
ADDED
|
dataset_real/val/tumor/tumor_00159.jpg
ADDED
|
dataset_real/val/tumor/tumor_00160.jpg
ADDED
|
dataset_real/val/tumor/tumor_00161.jpg
ADDED
|
dataset_real/val/tumor/tumor_00162.jpg
ADDED
|
dataset_real/val/tumor/tumor_00163.jpg
ADDED
|
dataset_real/val/tumor/tumor_00164.jpg
ADDED
|
dataset_real/val/tumor/tumor_00165.jpg
ADDED
|
dataset_real/val/tumor/tumor_00166.jpg
ADDED
|
dataset_real/val/tumor/tumor_00167.jpg
ADDED
|
dataset_real/val/tumor/tumor_00168.jpg
ADDED
|
dataset_real/val/tumor/tumor_00169.jpg
ADDED
|
dataset_real/val/tumor/tumor_00170.jpg
ADDED
|
dataset_real/val/tumor/tumor_00171.jpg
ADDED
|
dataset_real/val/tumor/tumor_00172.jpg
ADDED
|
dataset_real/val/tumor/tumor_00173.jpg
ADDED
|
dataset_real/val/tumor/tumor_00174.jpg
ADDED
|
dataset_real/val/tumor/tumor_00175.jpg
ADDED
|