26 lines
1.8 KiB
Markdown
26 lines
1.8 KiB
Markdown
# 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. |