From eab0d1818d9deed8ff99d9e45e4763e871bc2e97 Mon Sep 17 00:00:00 2001 From: Endre Simo Date: Fri, 20 Apr 2018 14:04:11 +0300 Subject: [PATCH] Update README.md --- README.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 66 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9e16598..a1563a4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -## Forensic +# Forensic -Forensic is an image processing library which aims to detect copy-move forgeries in digital images. It's implementation is mainly based on this paper: https://arxiv.org/pdf/1308.5661.pdf +Forensic is an image processing library which aims to detect copy-move forgeries in digital images. The implementation is mainly based on this paper: https://arxiv.org/pdf/1308.5661.pdf ### Implementation details @@ -13,3 +13,67 @@ Forensic is an image processing library which aims to detect copy-move forgeries * Search for similar pairs of blocks. Because identical blocks are most probably neighbors, after ordering them in lexicographic order we need to apply a specific threshold to filter out the false positive detections. If the distance between two neighboring blocks is smaller than a predefined threshold the blocks are considered as a pair of candidate for the forgery. * For each pair of candidate compute the cumulative number of shift vectors (how many times the same block is detected). If that number is greater than a predefined threshold the corresponding regions are considered forged. +## Install +First install Go if you haven't installed already, set your `GOPATH`, and make sure `$GOPATH/bin` is on your `PATH`. + +```bash +$ export GOPATH="$HOME/go" +$ export PATH="$PATH:$GOPATH/bin" +``` +Next download the project and build the binary file. + +```bash +$ go get -u -f github.com/esimov/forensic +$ go install +``` + +In case you do not want to build the binary file yourself you can obtain the prebuilt one from the [releases](https://github.com/esimov/forensic/releases) folder. + +## Usage + +```bash +$ forensic -in input.jpg -out output.jpg +``` + +### Supported commands: +```bash +$ forensic --help + __ _ + / _| ___ _ __ ___ _ __ ___(_) ___ +| |_ / _ \| '__/ _ \ '_ \/ __| |/ __| +| _| (_) | | | __/ | | \__ \ | (__ +|_| \___/|_| \___|_| |_|___/_|\___| + +Image forgery detection library. + Version: + + -blur int + Blur radius (default 1) + -bs int + Block size (default 4) + -dt float + Distance threshold (default 0.4) + -ft float + Forgery threshold (default 210) + -in string + Source + -ot int + Offset threshold (default 72) + -out string + Destination +``` + +## Results +| Original | Forged | Result | +| --- | --- | --- | +| ![dogs_original](https://user-images.githubusercontent.com/883386/39047347-3fee70cc-44a2-11e8-8729-c4312c631017.jpg) | ![dogs_forged](https://user-images.githubusercontent.com/883386/39047218-c1c8c530-44a1-11e8-8eb6-f9a8470848bd.jpg) | ![dogs_result](https://user-images.githubusercontent.com/883386/39047481-aec6f0f0-44a2-11e8-9f0f-041b9f2a0eb4.png) | +| ![parade](https://user-images.githubusercontent.com/883386/39047612-2db85eee-44a3-11e8-88d1-b64b8c017180.jpg) | ![parade_forged](https://user-images.githubusercontent.com/883386/39047619-32217e20-44a3-11e8-9eea-7d69e775388a.jpg) | ![parade_result](https://user-images.githubusercontent.com/883386/39047625-38003c46-44a3-11e8-9c77-b3bac8489686.png) + +### Notice +The library sometimes produce false positive detection, depending on the image content. For this reason i advice to adjust the settings. Also sometimes the human judgement is required, but in the most cases the library do a pretty good job in detecting forged images. The more intensive the overlayed color is, the more certain is that the image is tampered. + +## License + +Copyright © 2018 Endre Simo + +This project is under the MIT License. See the LICENSE file for the full license text.