Copyright 2015-2018 Netherlands eScience Center, VU University Amsterdam, and Netherlands Forensic Institute
The Common Source Identification Desktop application finds within a set of images the images that were made with the same camera. It extracts PRNU (Photo Response Non Uniformity) patterns from images and based on these PRNU patterns it correlates each image with each other image using NCC (Normalized Cross Correlation) or PCE (Peak to Correlation Energy). The images are then clustered with a hierarchical clustering approach with averaged inter-cluster distances based on the similarity scores from the correlation. This implementation uses CUDA to speed up the extraction and comparison.
This work can be cited with: Werkhoven, B. van; Hijma, P.; Jacobs, C.J.H.;Maassen, J.;Geradts, Z.J.M.H.;Bal, H.E. A Jungle Computing approach to common image source identification in large collections of images (under submission).
To install this software CUDA >= 8.0 and a recent Java is required. The software can be built and tested with:
git clone https://github.com/JungleComputing/common-source-identification-desktop
cd common-source-identification-desktop
./gradlew build
This creates a distribution in build/distributions
that can be unpacked
anywhere and run with:
cd common-source-identification
./bin/common-source-identification
Alternatively, the following command installs the distribution in
build/install
.
./gradlew installDist
To be able to run the application on Windows, we need to install the newest Java SE Development Kit, the 64 bits version. We also need Visual Studio version 2013 Patch 3 or Visual Studio version 2015 but not higher. Finally, we need to install CUDA for Windows verion 8.
Download the zip file of the release and unpack it. We assume that it resides
in C:\common-source-identification-desktop-1.0.0
.
Then in Visual Studio, use the command prompt as described here and move to
directory C:\common-source-identification-desktop-1.0.0
. From here we can
execute the following commands to build:
.\gradlew.bat build
.\gradlew.bat installDist
You can find the batch files in the bin
directory within the following
directory: C:\common-source-identification-desktop-1.0.0\build\install\common-source-identification-desktop
.
The results in the paper can be reproduced by downloading the Dresden image database. In the paper we used resolutions 4000x3000 (Pentax), 2560x1920 (Praktica), and 3648x2736 (Olympos). The application can be run on Linux with:
cd build/install/common-source-identification
./bin/common-source-identification <name-test> <path-to-dresden-dir> PCE0
For Windows, the command would be:
.\bin\common-source-identification <name-test> <path-to-dresden-dir> PCE0
In this command <name-test>
is a user-defined name for the output files, for
example reproduce
. The <path-to-dresden-dir>
should point to the directory
that contains a set of images.