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 (old link is dead, go to alternative link); Fast and smooth attack detection algorithm on digital image using principal component analysis, 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
More information can be found at Springer that you can find it here
We know that Duplication detection algorithm (Paper 1) has coordinate
and principal_component
features, and then on Robust detection algorithm (Paper 2) it has coordinate
and seven_features
mentioned inside the paper.
Knowing that, we then attempt to give a tolerance by adding all of the features like so:
and then sort it lexicoghrapically.
The principal component will bring similar block closer, while the seven features will also bring closer similar block that can't be detected by principal component (that are for example blurred).
By modifying the algorithms like mentioned above, 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)
python3 copy_move_detection/detect.py
This assignment is developed from https://github.com/rahmatnazali/pimage.git. Thanks a lot for your help.