Skip to content

santhoshnumberone/Image-Forgery-Detection-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

Image Forgery Detection using Custom CNN

This project demonstrates a custom-designed Convolutional Neural Network (CNN) for binary classification of authentic vs. forged (spliced) images. It draws architectural inspiration from InceptionNet and ResNet, implemented in PyTorch, and trained from scratch to work with spliced image detection problems.


🧠 Motivation

Most off-the-shelf deep learning models are optimized for object detection, not holistic image analysis. This project aims to detect splicing forgeries — where regions from one image are inserted into another — a challenge where transfer learning may be suboptimal.

A 2017 research paper An Evaluation of Digital Image Forgery Detection Approaches highlighted wavelet decomposition as an effective technique. While this project doesn't implement wavelets, it aims to test an original CNN approach inspired by Inception and ResNet.


🏗️ Model Architecture

  • Inspired by InceptionNet, the model applies multiple convolutions in parallel.
  • One path inside the Inception block includes two 3x3 convolutions with a skip connection, inspired by ResNet.
  • Later layers are widened (deeper filters) to capture global features as much as GPU limits allow.
  • Weights are initialized using Xavier initialization or Glorot initialization:
    sqrt(2 / number of inputs to the layer)

📌 See architecture visual:
ImageForgeryDetectionNetworkDiagram.pdf
ImageForgeryDetectionNetworkDiagram (1).pdf

📌 Inception Block: inception.jpg inception

📌 ResNet Skip Block: ResNet.png ResNet

📌 Weight Initialization: InitialiseWeights.jpeg InitialiseWeights


🚀 Technology Stack

  • Language: Python 3.x
  • Framework: PyTorch
  • CUDA: Used for GPU training on a personal laptop

📊 Training Results

  • Training was conducted for ~600 epochs on ~1800 labeled images (not publicly shared).
  • Loss and accuracy graphs demonstrate progressive learning and network convergence.
Metric Result
Training Loss ↓ Plot Screenshot 2025-05-20 at 1 17 08 PM
Training Accuracy ↑ Plot Screenshot 2025-05-20 at 1 19 14 PM
Validation Metrics TerminalView

📌 Bias & Variance explanation: BiasAndVariance.png BiasAndVariance


❌ Limitations

  • Dataset is not included due to interview scope and license constraints.
  • Model weights are not saved or uploaded.
  • Wavelet-based CNN is mentioned but not implemented.

🤝 Acknowledgments

This project was part of an interview challenge to demonstrate architectural thinking, PyTorch proficiency, and a hands-on approach to forgery detection. (2018)


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages