Global and Efficient Self-Similarity for Object Classification and Detection
============================================================================
Thomas Deselaers and Vittorio Ferrari
{deselaers, ferrari}@vision.ee.ethz.ch
This software was developed under Linux with Matlab 7.10 on a 64 bit machine.
There is no guarantee that it will run on other operating systems or Matlab versions
(though it probably will)
As a sub-component, this software uses a k-means implementation from the
Visual Geometry Group of the University of Oxford
http://www.robots.ox.ac.uk/~vgg/
We thank its authors for permission to redistribute their code as part
of this release.
Introduction
------------
Welcome to this release of the global selfsimilarity [1].
From the methods in [1] this code allows to compute self-similarity
hypercubes (SSHs). These SSHs can be obtained from a prototype
assignment map M in two ways:
The first method extracts an SSH from a full image.
The second method extracts multiple SSHs from a single image jointly.
Quick start
-----------
Let
be the directory where you uncompressed the release archive.
Start matlab and go to
1. run make to compile the necessary MEX files
2. run td_selfim_demo to extract SSHs from the delivered example image
td_selfsim_demo does the following:
- set the path to include the support functions
- load the example image
- setup the self-similarity object which encapsulates most self-similarity functionality
- create an image-specific codebook (if multiple images are provided a dataset specific codebook is computed)
- create the prototype assignment map M (and display it)
- compute a single SSH for the full image and display it
- generate some random windows in that image
- compute the SSHs corresponding to these windows
Documentation
-------------
Most matlab functions should offer a help when asking for it.
Nonetheless, a small description of what the files contain
* td_fastSelfSim.m
An object that encapsulates most self-similarity functions and settings.
- td_fastSelfSim()
* standard constructor
- getClustersFromPixels()
* given a cell array of images, compute a prototype codebook
- quantise
* compute the prototype assignment map for an image.
- getOneSSH
* compute a single SSH for an image given its prototype assignment map
- getManySSH
* compute a bunch of SSHs for an image given its prototype assignment map
NOTE: this routine is much faster than getOneSSH if many SSHs are
extracted. However, it needs a lot of memory and requires some
time for preparation. This routine is the basis for a sliding
window object detector.
* td_visualizeSSH
show an SSH as a matlab figure
* all the other files contain functions that are used within td_fastSelfSim
and are not meant to be user serviceable
Support
-------
For any query/suggestion/complaint or simply to say you like/use this
software, just drop us an email:
deselaers@vision.ee.ethz.ch (please contact this address first)
ferrari@vision.ee.ethz.ch
We wish you a good time using this software
Thomas Deselaers and Vittorio Ferrari