ThoraxVision
A computer vision research project for early tuberculosis detection from chest X-ray images, built around a DenseNet121 classifier and benchmarked against two other convolutional backbones.
- Discipline
- Computer Vision / Research
- Context
- Academic research and conference publication material
Problem
Early tuberculosis screening from chest X-rays depends on reader availability and experience. The project studies whether a convolutional classifier trained on a local chest X-ray dataset can support that screening step.
Approach
- Trained DenseNet121 as the main model on a local chest X-ray dataset.
- Benchmarked ResNet50 and VGG19 under the same evaluation protocol.
- Applied image preprocessing and augmentation before training.
- Ran hyperparameter experimentation across the model variants.
- Evaluated with accuracy, per-class precision/recall/F1, ROC-AUC, and confusion matrices.
- Used Grad-CAM to inspect which regions drive each prediction.
Outcome
Developed an end-to-end chest X-ray classification workflow for tuberculosis screening research, covering image preprocessing, CNN training, model comparison, evaluation, and inference. The project evolved from a research experiment into a working AI application, connecting the trained computer vision model with a web-based interface for practical inference.
Lessons learned
Accuracy on its own said little about a two-class chest X-ray problem where the classes were not balanced. Per-class precision, recall, and F1, ROC-AUC, and the confusion matrix each showed a different side of the same model, and a decision about which backbone to keep had to rest on all of them together.
Preprocessing and augmentation changed how the models behaved, not just how well they scored. What was done to the images before training had to be treated as part of the experiment and recorded with it.
Comparing DenseNet121, ResNet50, and VGG19 under one evaluation protocol was what made the comparison mean anything. Running the variants systematically, with the same data and the same metrics, mattered more than any single result.
Training a model and serving it are different engineering problems. Connecting the trained classifier to a web interface for inference raised questions (input handling, model loading, response shape) that the training notebooks never had to answer.
Dataset
Binary classification.
Stack
- Model
- PyTorchDenseNet121ResNet50VGG19
- Workflow
- Image preprocessingAugmentationHyperparameter experimentation
- Evaluation
- ROC / AUCConfusion matrixGrad-CAM