Harshit Ghosh
Add HF Space metadata to README
d076360
---
title: ICH Detection Pipeline
emoji: 🏥
colorFrom: blue
colorTo: pink
sdk: docker
pinned: false
---
# AI Medical Intelligence Pipeline for CT Scan Analysis
AI medical intelligence pipeline for intracranial hemorrhage (ICH) analysis from head CT (DICOM) images.
This project provides a Flask web interface for:
- uploading single or batch DICOM scans,
- running model inference,
- viewing Grad-CAM visualizations,
- browsing past reports and logs,
- reviewing calibration and evaluation summaries.
## Project Overview
Intracranial hemorrhage is a time-critical emergency finding in neuroimaging. This repository focuses on a practical intelligence pipeline with explainability and structured report output.
The system is built for decision support and triage assistance, not standalone diagnosis.
## Model and Artifacts
Model weights and related inference artifacts are hosted on Hugging Face:
- [Hugging Face Model Repository](https://huggingface.co/HarshCode/eff_b4_brain)
When model files are not present locally (for example on Render), the app can
download required artifacts from this Hugging Face repository at runtime.
## Detailed Performance Report
Detailed performance and B4-specific analysis are documented separately in:
- [B4_Performance_Report.md](B4_Performance_Report.md)
## GitHub Pages Setup
For step-by-step GitHub Pages setup (project site and username.github.io site), see:
- [GITHUB_PAGES_DOCUMENT.md](GITHUB_PAGES_DOCUMENT.md)
## Repository Structure
- `app.py`: Flask application entry point
- `run_interface.py`: adapter layer between app and inference implementation
- `download_imp/`: inference code and local artifact layout
- `templates/`: HTML templates (Jinja2)
- `static/`: styles and static assets
- `docs/`: GitHub Pages content
## Requirements
- Python 3.10+ (3.12 works)
- pip
- virtual environment (recommended)
Install dependencies:
```bash
pip install -r requirements.txt
```
## Environment Setup
Create local environment file from template:
```bash
cp .env.example .env
```
Important variables in `.env`:
- `ICH_APP_DEBUG`: run Flask in debug mode (`1` or `0`)
- `ICH_APP_PORT`: app port (default `7860`)
- `ICH_SECRET_KEY`: Flask secret key
- `ICH_MAX_UPLOAD_MB`: max upload size in MB
- `ICH_FOLD_SELECTION`: `ensemble`, `best`, or fold id (`0` to `4`)
- `ICH_LOCAL_MODE`: enables local directory scanning mode
- `ICH_LOG_LEVEL`: `DEBUG`, `INFO`, `WARNING`, `ERROR`
- `ICH_HF_MODEL_REPO`: Hugging Face model repo used for runtime artifact download
- `ICH_HF_TOKEN`: optional token (required only if the Hugging Face repo is private)
## Run the Application
```bash
python app.py
```
Open in browser:
```text
http://127.0.0.1:7860
```
## Deploy on Render
This repository includes `render.yaml` for Render deployment.
1. Push the repository to GitHub.
2. In Render, create a new Blueprint/Web Service from the repository.
3. Ensure these environment variables are set in Render:
- `ICH_HF_MODEL_REPO=HarshCode/eff_b4_brain`
- `ICH_HF_TOKEN` (only if repo is private)
- `ICH_SECRET_KEY` (recommended custom value)
4. Deploy. The service will start with:
```bash
gunicorn app:app --bind 0.0.0.0:$PORT --workers 1 --timeout 180
```
Note: first startup can take longer because model artifacts may be downloaded
from Hugging Face.
## Basic Usage
1. Go to the upload page.
2. Upload one `.dcm`, multiple `.dcm` files, or batch input.
3. Wait for inference and report generation.
4. Review:
- screening outcome,
- calibrated probability,
- confidence band,
- triage action,
- Grad-CAM overlay.
5. Use Reports / Logs / Evaluation pages for history and analysis.
## Notes
- Keep heavy model binaries out of GitHub (managed via `.gitignore`).
- Generated report outputs are created during runtime.
- If required artifacts are missing locally, fetch them from the Hugging Face repository linked above.
## Disclaimer
This system is an AI-assisted screening and decision-support tool.
It does **not** provide a medical diagnosis and must be used with qualified clinical review.