Spaces:
Sleeping
Sleeping
| 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. | |