Overview
I built a tool that tells whether a picture is real or AI-generated and shows why the model thinks so. It trains ten image-classification models on the 20 000-image CIFAKE dataset and wraps the best ones in a Streamlit web app with visual heat-maps. The goal is to help newsrooms, social platforms and anyone online spot deepfakes quickly.
My Role & Contributions
- Collected, cleaned and split the CIFAKE dataset.
- Designed and trained 6 custom CNNs plus 4 transfer-learning models.
- Reached 96 % accuracy on unseen images with Models 5 & 6.
- Added LIME, SHAP and Grad-CAM so users can see which pixels mattered.
- Coded the Streamlit dashboard, allowing image upload, model switch and heat-map download.
- Drafted a SaaS business plan (“Check for AI” button + freemium API).
- Documented everything and wrote the dissertation.
Tech Stack
Python
OpenCv
Tensorflow
SHAP
LIME
GRADCAM
Streamlit
Matplotlib
scikit-learn
Implementation Details
- Data prep: resize to 32×32 px, normalise 0-1, 80/20 train-val split; labels 0 (real) / 1 (fake).
- Models:6 custom CNNs (progressively deeper, dropout & batch-norm). ResNet50, VGG16, MobileNetV2, EfficientNetB0 fine-tuned.
- Training: Adam, binary-cross-entropy, early stopping; metrics logged for each run.
- Explainability: one-click LIME, SHAP and Grad-CAM visuals served in the UI.
- Frontend: Streamlit; shows accuracy/loss plots, prediction with confidence, and downloadable heat-maps.
- Business layer: pricing tiers ($0, $5, $20) and “Check for AI” plug-in for social media.



Results & Impact
- 96 % balanced accuracy on test data; precision/recall 95-97 %.
- End-to-end demo lets recruiters verify any image in under 5 seconds.
- Dashboard explanations improve user trust and model transparency.
- Business concept shows commercial viability and product thinking.
- Project sharpened my skills in deep learning, XAI, full-stack Python and product strategy, preparing me to deliver production-ready ML features