This is an implementation of python script to detect a copy-move manipulation attack on digital image based on Overlapping Blocks.
This script is implemented with a modification of two algoritms publicated in a scientific journals:
- Duplication detection algorithm, taken from Exposing Digital Forgeries by Detecting Duplicated Image Region; Fast and smooth attack detection algorithm on digital image using principal component analysys, but sensitive to noise and post region duplication process (explained in the paper above)
- Robust detection algorithm, taken from Robust Detection of Region-Duplication Forgery in Digital Image; Slower and having rough result attack detection algorithm but are considered robust towards noise and post region duplication process
By modify those algorithm, this script will have a tolerance regarding variety of the input image (i.e. the result will be both smooth and robust, with a trade-off in run time)
By default, the script will log entire detection process like so:
Make sure you already have:
Also the required python libraries:
- Run main_GUI.py
- A new window will apear, click open file and choose your image
- Click detect and the detection process will start
- After done, the detection result will be written in your CLI, while the result image will be shown in GUI
By default, you can run it using main_CLI.py. But you can also modify it, or even make your own python script with the format below:
- Make sure to import
CopyMoveDetection
package - Directly call function
detect
ordetect_dir
and give the proper parameter
Your scirpt will likely looks like so:
import CopyMoveDetection
# To detect all images on a single folder, use detect_dir function
CopyMoveDetection.detect_dir('your/directory/path/', 'your/result/directory/' [, blockSize])
# To detect single image on a certain path, use detect function
CopyMoveDetection.detect('your/directory/path/', 'your_image.png', 'your/result/directory/' [, blockSize])
If blockSize parameter was not given, the default value would be 32 (integer).
- Python 2.7 - Base language
- Anaconda 4.3.1 - Python data science package
- Pycharm 4.5.5 - IDE
- Rahmat Nazali S - LinkedIn - HackerRank
This project is licensed under the MIT License - see the LICENSE.md file for details
I mainly learnt how to do PCA on image using Python from here written by Jan Erik Solem, but the page has been erased. Shortly after knowing the page was gone, I found that the author are now founder & CEO at Mapillary (Hail, and hat tip).