Arghadeep PakhiraClose← Back to the worldContact
← All work02 / 05

AI-Powered Chest X-Ray Disease Detection

Research · Medical AIScroll ↓
Overview

An end-to-end medical-imaging system that screens chest X-rays for 14 thoracic diseases and runs fully offline on an Android phone.

Details
Role
Design & development
Category
Research · Medical AI
Links
01 — Data & Training Pipeline
  1. Trained multi-label classifiers on NIH ChestX-ray14 (112,120 images, 14 disease labels) using transfer learning, sigmoid outputs, data augmentation, LR scheduling and best-checkpoint saving.
  2. Benchmarked six model configurations across DenseNet121/201, ResNet34, EfficientNet-B0 and EfficientNetV2-S on Kaggle T4 GPUs, using gradient checkpointing and gradient accumulation to fit within 12-hour session limits.
02 — Results & Research Findings
  1. Deployed model (EfficientNetV2-S) reaches 0.826 macro-AUC; a DenseNet201 + EfficientNetV2-S ensemble reaches 0.832 macro-AUC.
  2. Showed that all architectures plateau near 0.82 AUC with identical per-class difficulty rankings, attributing the ceiling to label noise in NLP-extracted labels rather than model capacity.
  3. Ran controlled loss-function studies: weighted BCE reduced macro-AUC (0.816 → 0.804), and Asymmetric Loss required per-class decision thresholds to avoid false-positive flooding.
03 — On-Device Android Deployment
  1. Exported the model to ONNX (opset 17) with INT8 quantization, running offline through ONNX Runtime Mobile + NNAPI; chose ONNX over TFLite because EfficientNetV2-S's SiLU layers did not convert cleanly to TFLite.
  2. Built a Kotlin / Jetpack Compose app with gallery upload and CameraX capture, per-disease confidence scores, Grad-CAM heatmaps, prediction history, PDF report export, and support for loading custom-trained models.
Built with

Python / PyTorch / Torchvision / Scikit-learn / Pandas / ONNX / ONNX Runtime Mobile / NNAPI / Kotlin / Jetpack Compose / Material 3 / CameraX / FastAPI

Next projectTrain-Assistant AI