PixelProof
Cross-platform mobile app that detects image forgery, sending photos to a FastAPI backend that runs a custom-trained model hosted on Hugging Face.
- Flutter
- FastAPI
- Hugging Face
- Machine Learning
Overview
PixelProof is a personal project: a Flutter mobile app that checks whether an image has been tampered with. The user picks a photo from their gallery, the app sends it to a FastAPI backend running a custom-trained forgery detection model on Hugging Face, and the result comes back with a confidence score.
The Problem
Edited and manipulated images are easy to create and hard to spot by eye. That makes it difficult to trust images that are shared online or used in documents.
Architecture
Mobile app (Flutter)
- Pick image from gallery
- Scanning animation
Backend
- FastAPI /predict endpoint
- Hosted on Hugging Face Spaces
Model
- Custom-trained forgery detection model
Result
- Prediction label
- Confidence score
How It Works
- 1
Upload
The user selects an image from their mobile gallery.
- 2
Send
The app uploads the image to the FastAPI prediction endpoint.
- 3
Analyse
The custom-trained model checks the image for signs of tampering.
- 4
Result
The app shows whether the image is authentic, with a confidence percentage.
My Contribution
- Built the Flutter app: gallery upload, scanning animation, and result dialog.
- Trained the custom machine learning model for image forgery detection.
- Built the FastAPI prediction endpoint and deployed it with the model on Hugging Face.
Engineering Challenges
- Detecting several kinds of tampering rather than a single type of edit.
- Keeping analysis fast enough for instant feedback in the app.
- Hosting the model somewhere a mobile app can reach it reliably.
Lessons Learned
- For a tool people actually use, a fast and clear verdict matters as much as model accuracy.
- Serving the model behind a simple HTTP endpoint keeps the mobile client lightweight.