Coder Social home page Coder Social logo

ess's Introduction

 ********************************************************
 *                                                      *
 * Efficient Subwindow Search (ESS) implemention in C++ *
 * entry point and commmand line interface              *
 *                                                      *
 * version 1.0, March 27th 2008                         *
 *   first release, except bugfixes soon                *
 *                                                      *
 *   Copyright 2006-2008 Christoph Lampert              *
 *   Contact: <[email protected]>              *
 *                                                      *
 *  Performs a branch-and-bound search for an arbitrary *
 *  quality function, provided a routine to bound it:   *
 *  see  C. H. Lampert, M. B. Blaschko and T. Hofmann:  *
 *       Beyond Sliding Windows: Object Localization    *
 *       by Efficient Subwindow Search, CVPR (2008)     *
 *                                                      *
 ********************************************************

This is sample implementation of Efficient Subwindow Search,
a method to replace sliding windows approaches to object
localization by a branch-and-bound search. 

The default quality function is to use a spatial pyramid kernel 
with levels of size 1x1, 2x2 ... NxN where N can be chosen at 
runtime. Default is N=1, i.e. bag-of-visual-words model. 



USAGE: 

./ess imagewidth imageheight weight-file data-file

The weight-file is an ASCII file of 1 entry per line. 
It contains the concatenation of the per-cluster weights for 
each pyramid level. The levels are ordered by increasing index.
Within each level, weights are aranged in reading order. All 
weights must be present, as the number of cluster centers 
is calculated by dividing the total number of weights by the
total number of pyramid cells, which is N*(N+1)*(2N+1)/6. 

The data-file is an ASCII File of 3 columns. Each line has the format

X Y CLST

where (X,Y) are the coordinates of a feature in the image and CLST is
an ID attached to it, e.g. it's ID in a codebook representation.
The ID and X,Y are used to look up the correct weight for this feature 
point in a candidate box.

Output is a single line with all detected box in the format

SCORE LEFT TOP RIGHT BOTTOM 

repeating as often as there are boxes.


The main routine 

Box pyramid_search(int argnumpoints, int argwidth, int argheight, 
                   double* argxpos, double* argypos, double* argclst,
                   int argnumclusters, int argnumlevels, double* argweight)

can also be called from an external application. Extracted multiple boxes 
requires a loop, see the main() routine.



EXAMPLE FILES: 

examples/cow.weight is a weightfile with 3000 clusters in 1 level.
examples/car-l1.weight is a weightfile with 1000 clusters in 1 level.
examples/car-l2.weight is a weightfile with 1000 clusters in 2 levels, 
making it 5000 weights in total.

examples/cow.clst is a data-file of 13498 feature points.
examples/cow.clst is a data-file of 13498 feature points.

Arguments can be passed to the executable by environment variables:

numlevels=2 ./ess 151 101 examples/car-l2.weight examples/car.clst

returns the best box for a 2-level pyramid. 

maxresults=3 ./ess 151 101 examples/car-l1.weight examples/car.clst

returns the 3 best car detections instead of just 1. Both arguments
can be combined:

maxresults=2 numlevels=2 ./ess 151 101 examples/car-l2.weight examples/car.clst


Outputs for the examples are:

./ess 368 272 examples/cow.weight examples/cow.clst
# 10978.8779297 89 117 258 209 
	
./ess 151 101 examples/car-l1.weight examples/car.clst
# 1.51183950901 39 56 118 77 0.286267101765 4 61 144 65 0.138369500637 53 88 147 90 

numlevels=2 ./ess 151 101 examples/car-l2.weight examples/car.clst
# 1.69141745567 33 55 115 77 

maxresults=2 numlevels=2 ./ess 151 101 examples/car-l2.weight examples/car.clst
# 1.69141745567 33 55 115 77 0.15714520216 4 60 136 65 



TEST FILES: 

Apart from the examples, there is one synthetic test case so far: 

maxresults=4 ./ess 5 5 examples/test_corners.weight examples/test_corners.clst

should return 

# 1.39999997616 4 4 4 4 1.29999995232 4 0 4 1 1.20000004768 1 4 1 4 1.10000002384 1 1 1 1 

ess's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ess's Issues

Example files

Would you please provide some of the example files mentioned in the README file ?

Thanks,
Sarah

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.