An academic decision-support prototype for paired stress and rest myocardial perfusion imaging.
An honest account of using transfer learning on limited myocardial perfusion imaging data while separating research exploration from clinical claims.
Myocardial perfusion imaging compares stress and rest scans to help clinicians assess coronary perfusion. The final-year project explored whether transfer-learning models could assist analysis of paired images and expose coronary-territory outputs for LAD, LCX and RCA. The available dataset was limited, single-source and medically sensitive. That meant the project had two parallel responsibilities: construct a usable research pipeline and avoid presenting experimental predictions as diagnosis. The web product also needed to connect model inference, patient context, report generation and saved history without hiding the uncertainty of the underlying research.
The research compared VGG16, ResNet50V2 and DenseNet121. Stress and rest RGB scans were resized to 224 by 224 and concatenated into a six-channel tensor so the paired relationship remained available to each model. The training work explored transfer learning, paired augmentation, focal loss, label smoothing, class-aware oversampling, MixUp and staged fine-tuning. The application runs each available model independently and averages successful outputs for an ensemble path. A Next.js dashboard handles upload, patient information, results and history. It calls a FastAPI TensorFlow service packaged for Hugging Face Spaces. Supabase stores scans and reports when configured, with a browser fallback for limited operation. Groq generates a structured clinical-style report from the quantitative outputs and patient context, while a deterministic rule-based generator keeps the flow available when the API fails.
Use transfer learning because the available medical-imaging dataset was too small to justify training deep CNNs from scratch.
Concatenate stress and rest RGB images into a six-channel input to preserve their paired clinical relationship.
Compare multiple backbones and expose individual outputs rather than hiding all behaviour behind one ensemble score.
Separate the browser application from TensorFlow inference through a FastAPI service deployable on Hugging Face Spaces.
Provide deterministic report generation when the external LLM is unavailable.
Withhold inconsistent historical AUC claims until the original evaluation artifacts are reconciled.
Test the RAG retrieval pipeline by asking specific questions about this case study: