Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ python_version: "3.10"
**Large-Scale Chest X-Ray Pathology Detection** — Deep Learning & Big Data Project

[![CI](https://github.com/arudaev/chexvision/actions/workflows/ci.yml/badge.svg)](https://github.com/arudaev/chexvision/actions/workflows/ci.yml)
[![Deck](https://img.shields.io/badge/Slides-GitHub%20Pages-0f766e?logo=githubpages)](https://arudaev.github.io/chexvision/)
[![Dataset](https://img.shields.io/badge/HF-Dataset-blue?logo=huggingface)](https://huggingface.co/datasets/arudaev/chest-xray-14-320)
[![Demo](https://img.shields.io/badge/HF-Demo-orange?logo=huggingface)](https://huggingface.co/spaces/arudaev/chexvision-demo)
[![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/)
Expand All @@ -23,6 +24,16 @@ python_version: "3.10"

---

## Project Resources

- [Presentation deck](https://arudaev.github.io/chexvision/)
- [Live demo](https://huggingface.co/spaces/arudaev/chexvision-demo)
- [Dataset](https://huggingface.co/datasets/arudaev/chest-xray-14-320)
- [Scratch model](https://huggingface.co/arudaev/chexvision-scratch)
- [DenseNet model](https://huggingface.co/arudaev/chexvision-densenet)

---

## Overview

CheXVision tackles **automated chest X-ray pathology detection** at scale using the [NIH Chest X-ray14](https://www.nih.gov/news-events/news-releases/nih-clinical-center-provides-one-largest-publicly-available-chest-x-ray-datasets-scientific-community) dataset — 112,120 frontal-view X-ray images labeled with 14 pathological conditions.
Expand Down Expand Up @@ -288,6 +299,7 @@ All heavy compute runs in the cloud. Local machines are for editing and lightwei
| Component | Platform | Notes |
|-----------|----------|-------|
| Source code | [GitHub](https://github.com/arudaev/chexvision) | CI on every push (lint, test, type check) |
| Presentation deck | [GitHub Pages](https://arudaev.github.io/chexvision/) | Browser-based project presentation |
| Dataset | [HF Dataset](https://huggingface.co/datasets/arudaev/chest-xray-14-320) | 36 Parquet shards · 320×320 · pinned revision |
| Training | [Kaggle kernels](kaggle/) | Free T4 GPU; `dispatch.py` fully automates push |
| Model (scratch) | [arudaev/chexvision-scratch](https://huggingface.co/arudaev/chexvision-scratch) | Auto-uploaded by kernel after training |
Expand Down
6 changes: 4 additions & 2 deletions app/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
# HF Hub model repos
HF_SCRATCH_REPO = "arudaev/chexvision-scratch"
HF_DENSENET_REPO = "arudaev/chexvision-densenet"
PRESENTATION_DECK_URL = "https://arudaev.github.io/chexvision/"


def _try_load_checkpoint(
Expand Down Expand Up @@ -218,7 +219,7 @@ def main() -> None:
st.markdown("**Large-Scale Chest X-Ray Pathology Detection** — Upload a chest X-ray for AI-powered analysis.")

st.sidebar.header("About")
st.sidebar.markdown("""
st.sidebar.markdown(f"""
**Dataset**: NIH Chest X-ray14 (112,120 images)

**Two Models**:
Expand All @@ -229,8 +230,9 @@ def main() -> None:
- Multi-label: 14 pathologies
- Binary: Normal vs Abnormal

[Presentation Deck]({PRESENTATION_DECK_URL}) |
[GitHub](https://github.com/arudaev/chexvision) |
[Dataset](https://huggingface.co/datasets/arudaev/chest-xray-14)
[Dataset](https://huggingface.co/datasets/arudaev/chest-xray-14-320)
""")
sidebar_selected_sample = render_sidebar_samples()

Expand Down
13 changes: 12 additions & 1 deletion src/utils/hub.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
"CHEXVISION_DATASET_REVISION",
"44443e6ee968b3c6094b63f14a27698c40b50680",
)
PROJECT_REPO_URL = "https://github.com/arudaev/chexvision"
PRESENTATION_DECK_URL = "https://arudaev.github.io/chexvision/"
DEMO_SPACE_URL = "https://huggingface.co/spaces/arudaev/chexvision-demo"

# NIH Chest X-ray14 pathology labels in canonical order
PATHOLOGY_LABELS = [
Expand Down Expand Up @@ -401,6 +404,13 @@ def render_model_card(
> 14-class chest X-ray pathology detection + binary normal/abnormal classification
> on the NIH Chest X-ray14 dataset (112,120 images).

## Project Resources

- [GitHub repository]({PROJECT_REPO_URL})
- [Presentation deck]({PRESENTATION_DECK_URL})
- [Live demo]({DEMO_SPACE_URL})
- [Dataset](https://huggingface.co/datasets/{dataset_repo})

## Architecture

{arch_diagram}
Expand Down Expand Up @@ -442,7 +452,8 @@ def render_model_card(
CheXNet (Rajpurkar et al., 2017) — the seminal paper establishing DenseNet-121 for chest X-ray
classification — reported **0.841 macro AUC-ROC** on a comparable split of this dataset.
CheXVision-DenseNet matches this benchmark. See the
[CheXVision demo](https://huggingface.co/spaces/arudaev/chexvision-demo) for live inference.
[CheXVision demo]({DEMO_SPACE_URL}) for live inference, or the
[presentation deck]({PRESENTATION_DECK_URL}) for the project walkthrough.

## Citation

Expand Down
Loading