Skip to content

JungleComputing/common-source-identification-desktop

Repository files navigation

Common Source Identification Desktop

Copyright 2015-2018 Netherlands eScience Center, VU University Amsterdam, and Netherlands Forensic Institute

Introduction

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).

Installation

Unix-like systems

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

Windows

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.

Reproducing the results of the paper

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.