2019-06-29 14:14:05 +02:00
2019-03-11 22:52:55 +01:00
2019-06-23 21:30:08 +02:00
2019-06-29 13:52:38 +02:00
2019-06-29 13:52:38 +02:00
2018-06-30 14:17:13 +02:00
2019-06-29 13:52:38 +02:00
2019-06-23 21:29:52 +02:00
2019-03-06 20:07:00 +01:00
2019-06-29 14:14:05 +02:00
2018-06-30 14:17:13 +02:00
2018-06-30 14:17:13 +02:00
2018-06-30 14:17:13 +02:00
2018-06-30 14:17:13 +02:00

Small Image Descriptors

64-bit image descriptors for efficient near-copy detection.

About

This is a research project done by a graduate student. This code will be accompanied by a paper at some point, or rather the other way around.

It's still a work in progress, and as such all features can only be accessed by adding code to main and recompiling the thing. At this point it takes a folder with images as input (most common image formats accepted), and calculates a bunch of descriptors of at most 64 bits per image. Depending on the quality of the descriptor used (multiple are implemented) two images with exactly the same value should be copies or near-copies. Images with small distances between their descriptors might be very similar, and images with big distances very dissimilar, etc.

Eventually this should run as a (web)service that can hold a large database of descriptors in memory and quickly respond to an image-query returning similar images.

Compilation

Requirements:

  • Boost
    • Serialization
    • Filesystem
    • System
  • ImageMagick (Magick++)
  • A C++ compiler

A Makefile is included that should work on any system with the above requirements met. Code is written in a portable way, so should work on any system that has the libraries installed, but your mileage may (and will) vary.

A Visual Studio project is also included that did work at some point with certain libraries installed in certain places on certain systems.

Usage

Compile and run. Probably some adjustments to the code are required if you want some output. Most methods are accompanied by a short docstring header thingy that you can read if you like.

It should work through small image datasets pretty quickly. By the power of compiler optimization it should multi-thread pretty good, but practically speaking the program is bottlenecked by IO.

S
Description
Near-copy detection for images
Readme 87 KiB
Languages
C++ 92.6%
C 5.3%
Makefile 1.5%
CSS 0.6%