Skip to content
All projects
Personal Project

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
PixelProof banner with the tagline "Safeguarding Image Integrity with Advanced Forgery Detection" and three phones showing the splash screen, the app logo, and a result reading "Prediction: Authentic, Confidence: 74.72%".

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

  1. Mobile app (Flutter)

    • Pick image from gallery
    • Scanning animation
  2. Backend

    • FastAPI /predict endpoint
    • Hosted on Hugging Face Spaces
  3. Model

    • Custom-trained forgery detection model
  4. Result

    • Prediction label
    • Confidence score
The app uploads the image to the API as a multipart request and shows the JSON response in a result dialog.

How It Works

  1. 1

    Upload

    The user selects an image from their mobile gallery.

  2. 2

    Send

    The app uploads the image to the FastAPI prediction endpoint.

  3. 3

    Analyse

    The custom-trained model checks the image for signs of tampering.

  4. 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.