Identifying Manipulated Images and Unveiling Hidden Alterations
- Project Overview
- Video link
- Objectives
- Dataset
- Model
- Performance
- Literature Review
- Technologies Used
- Setup Instructions
The Image Forgery Detection project aims to identify manipulated or forged images using deep learning techniques. This project explores various image tampering methods, such as splicing, copy-move, and retouching, and leverages neural networks to detect such alterations with high accuracy.
https://drive.google.com/file/d/1HE8OicPrbJLVPZvdQ0dXelcQ0NDjPlQE/view?usp=sharing
- Identify Forged Images: Distinguish between authentic and manipulated images.
- Develop Detection Techniques: Explore and refine methods to enhance detection accuracy.
- Evaluate Performance: Measure the model's performance on unseen data.
- Contribute to Security: Strengthen digital security through advanced forgery detection.
The model is trained and tested on the CASIA V.2 Dataset, which consists of over 12,500 images:
- Authentic Images: 7,490 original images.
- Tampered Images: 5,122 manipulated images, including:
- Spliced images
- Copy-move forgeries
- Retouched images
- Dataset Link https://www.kaggle.com/datasets/sophatvathana/casia-dataset/data?select=CASIA2
The project uses a Convolutional Neural Network (CNN) architecture for forgery detection. The workflow of the model includes:
- Input Layer: Raw image data.
- Convolutional Layers: Extract image features.
- Pooling Layers: Downsample and reduce dimensionality.
- Fully Connected Layers: Perform classification.
- Output Layer: Predict whether the image is forged or authentic.
The model is also enhanced with Error Level Analysis (ELA), a technique used to check image compression levels. Images with more compression show lower ELA, while less compression results in higher ELA, helping to spot inconsistencies caused by manipulation.
The model demonstrates high accuracy and recall rates:
- Accuracy on Unseen Data: 94.95%
- Accuracy on Training Data: 94.80%
- Recall: 97% (minimizing false negatives)
- F1-score: 95% (balancing precision and recall)
-
Image forgery detection using error level analysis and deep learning
- Data Preprocessing: Image normalization, ELA
- Model Used: VGG 16
- Remarks: Training Accuracy: 92.2%, Validation Accuracy: 88.46%
-
Detection and localization of image forgeries using improved mask regional convolutional neural network
- Data Preprocessing: Synthetic dataset creation using COCO dataset to generate copy-move and splicing forgeries
- Model Used: Improved Mask R-CNN with Feature Pyramid Network (FPN) and ResNet-101 backbone, Sobel filter for edge detection
- Remarks: Higher AP and F1 scores, robust to JPEG compression and resizing attacks, AP improved from 0.713 to 0.769 using Sobel filter. Processing speed of 5 FPS
-
Copy-Move Forgery Detection using Integrated DWT and SURF
- Data Preprocessing: Discrete Wavelet Transform (DWT) for reducing image dimensions
- Model Used: Combination of DWT and Speeded-Up Robust Features (SURF)
- Remarks: 95% accuracy in detecting copy-move forgery, especially with geometric transformations like rotation and scaling
-
Image Forgery Detection using Deep Learning: A Survey
- Data Preprocessing: Hand-crafted feature extraction (DCT, DWT, PCA, SIFT, SURF for traditional methods), data augmentation and normalization for deep learning
- Model Used: CNNs, MFCN, Autoencoders, Stacked Autoencoders, RRU-Net, BusterNet
- Remarks: Deep learning methods outperform traditional ones by automatically learning complex features but require large datasets and high computational power
- Dataset: CASIA V.2
- Deep Learning Framework: TensorFlow / PyTorch (depending on the specific framework used in the implementation)
- Error Level Analysis (ELA)
- Convolutional Neural Networks (CNN)
- Install Node.js.
- Install the necessary dependencies:
npm install
3 Follow the prompts to set up your project with React or other preferred frameworks. Run Frontend
npm run dev
4 Create the app.py File In your project directory, run file named app.py using following code:
python app.py
The backend will now be running locally on http://127.0.0.1:5000/.