forpix - Software for detecting affine image files

forpix is a forensic program for identifying similar images that are no longer identical due to image manipulation. Hereinafter I will describe the technical background for the basic understanding of the need for such a program and how it works.

From image files or files in general you can create so-called cryptologic hash values, which represent a kind of fingerprint of the file. In practice, these values have the characteristic of being unique. Therefore, if a hash value for a given image is known, the image can be uniquely identified in a large amount of other images by the hash value. The advantage of this fully automated procedure is that the semantic perception of the image content by a human is not required. This methodology is an integral and fundamental component of an effective forensic investigation.

Due to the avalanche effect, which is a necessary feature of cryptologic hash functions, a minimum -for a human not to be recognized- change of the image causes a drastic change of the hash value. Although the original image and the manipulated image are almost identical, this will not apply to the hash values any more. Therefore the above mentioned application for identification is ineffective in the case of similar images.

A method was applied that resolves the ineffectiveness of cryptologic hash values. It uses the fact that an offender is interested to preserve certain image content. In some degree, this will preserve the contrast as well as the color and frequency distribution. The method provides three algorithms to generate robust hash values of the mentioned image features. In case of a manipulation of the image, the hash values change either not at all or only moderately similar to the degree of manipulation. By comparing the hash values of a known image with those of a large quantity of other images, similar images can now be recognized fully automated.

Illustrative Example (click to zoom):

Download forpix

The algorithms have been implemented in the software forpix:
(The author is not liable for any damages to software, hardware or financial losses of the user, unless they are based on an event of willful intent or gross negligence by the author. Place of jurisdiction is Germany)

forpix 2.08 (English, Windows 32/64 bit, Java Virtual Machine 32 bit)
forpix 2.08 (German, Windows 32/64 bit, Java Virtual Machine 32 bit) → German site
Java Virtual Machine is available at the homepage of Oracle. forpix requires at least Java Runtime Environment version 8 (32 Bit, the Java RE 32 bit version runs on 32 bit and 64 bit operating systems.).

Technical support within the limits of my leisure time

For requests about program execution or feedback about bugs please use the
contact form

Tutorial (forpix version 2.05)

In order to launch the program (on a Windows machine) you need an installed Java Runtime Environment 32 bit. forpix and Java 32 bit runs on all Windows 32/64 bit machines. Start forpix with the command javaw.exe -jar -Xmx1024m forpix.jar.

To perform a comparison following steps are necessary. The execution of the steps are very simple in practice.
  1. Creating an image database.
  2. Analyzing images of a seized media and import the images and hash values into the image database in one step.
  3. Analyzing a reference image and performing an automated image comparison in one step.
  4. Select similar images to create a report.
As a result, you get for each reference image a list of the most similar images from the database.

The very short tutorial:
  1. Create a database: menu "Database > Create ..."
    Create database

  2. Choose a name along with a directory for the new database by pressing "Directory".

  3. Press "OK"
  4. Import images into the database: menu "Image > Import".

  5. Optionally you can insert your user name, case number/identifier, evidence number. (The OCR is currently not an independent identifying feature. It can therefore be left unchecked in most cases.) Then choose the directory where the images were stored. Press "Start"

  6. Wait a moment... A message will be shown at the end. Press "Finish".

  7. To compare a image with all images in the database: menu "Image > comparison..."

  8. Choose a reference image by pressing "file" to open the reference image file.

  9. For comparison press "Start".
  10. Wait a moment... A message will be shown at the end. Press "OK".

  11. After that you will see a list of images, similar to the reference image.

  12. To show each image just single click on each entry in the list. Or take a look in the image gallery to see all pictures at the same time.

  13. To show the reference image just click "Reference Image" in the menu bar.

  14. Table entries with matching text content (dark green if matching ≥ 90%, green ≥ 30%, yellow ≥ 10%).