Giter VIP home page Giter VIP logo

libpabod's Introduction

libpabod: Library for PArt-Based Object Detection in C++
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Daniel Rodriguez Molina and Manuel J. Marin-Jimenez

This software implements the object detection system described in Felzenszwalb et al. [1].

Contents of the package:
========================
- bin - the executable file will be created here
- data:
  - models - contains all the object model files 
  - testimages - a set of images to test the software
- doc - folder where the documentation will be generated
- include - contains all the software header files
- libs - folder where the library will be generated
- obj - folder where the object files will be generated during the compilation
- src - contains all the software source files
- tests - contains some programs to test the library
- makefile - used to compile the library, the documentation and the test program


Requirements:
=============
This software has been tested on Ubuntu 10.10 (Maverick Meerkat) with the following libraries:
 - libmatio-dev - v1.3.4-2 (required)
 - libcv-dev - v2.1.0-2 (required)
 - libhighgui-dev - v2.1.0-2 (required)
 - doxygen - v1.7.1-1   (optional; used to generate the documentation)
 - graphviz - v2.26.3-4 (optional; used to generate figures for the documentation)


Quick start:
============

A) Classic installation (obsolete --> CMake is highly recommended):
  1. Unpack in <libpabod_directory>
  2. cd <libpabod_directory>
  3.1. Generating the library  
    > make
  3.2. Creating the test programs
    > make alltests
  3.3. Generating the documentation
    > make docum
  3.4. Recompiling all
    > make cleanobj
    > make   

Tip: use 'make all' to generate both the library and the test programs.

B) Installing with CMake:
   Please, follow the steps described in the file named INSTALL.

C) Testing the library:
  (assuming test program has been already generated)
  1. cd <libpabod_directory> 
  2.  ./bin/detectobj -m <model_path> -i <image_path> [-t <threshold>] [-o <detections_path>] [-d <0/1>]
  Example:
    > ./bin/detectobj -m data/models/person_v6.mat -i data/testimages/2008_007537.jpg -t -0.3 -o detections.txt

If the program has finished correctly, you will find a text file named 'detections.txt' with the following structure:
  <number_of_detected_objects>
  <x1_i> <y1_i> <x2_i> <y2_i> <score_i>
where <x1_i> <y1_i> <x2_i> <y2_i> are the pairs of coordinates of the i-th bounding box and <score_i> is its corresponding detection score.

Tip: object detection can be performed directly on video frames (e.g. avi file) with the test program named 'detectvid'.

Citation:
=========
If you use this library for your publications, please cite it as:
@misc{libpabod,
 author = {Rodriguez-Molina, Daniel and Marin-Jimenez, Manuel J.},
 title = {{LibPaBOD}: A Library for Part-Based Object Detection in {C++}},
 year = {2011},
 note =   {Software available at \url{http://www.uco.es/~in1majim/}}
}


Contact the authors:
====================
Daniel Rodriguez Molina (developer) - [email protected] / [email protected]
Manuel J. Marin-Jimenez (advisor) - [email protected]


References:
===========
[1] P. Felzenszwalb, R. Girshick, D. McAllester, D. Ramanan. "Object Detection with Discriminatively Trained Part Based Models." IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 32, No. 9, September 2010.
URL: http://people.cs.uchicago.edu/~pff/latent/


Version history:
================
 - v0.2.7: memory leaks found by github/yokox solved. Thanks!
 - v0.2.6: new file 'export.h' for properly exporting functions to dll's.
 - v0.2.5: updated CMake files and other minor improvements for Windows compatibility.
 - v0.2.4: CMake and code updated to properly manage libmatio on Windows (thanks to Eric Sommerlade for his invaluable contributions). See new file 'INSTALL.windows'. libmatio 1.5.x is supported.
 - v0.2.2: detector component is now included in detections matrix. Other minor improvements.
 - v0.2.1: OpenMP is now optional via CMake. Selection of OpenMP overrides pthread's choice.
 - v0.2: new class Pabod. It encapsulates the class model and detection process. New demo file 'detectobj2.cpp' uses Pabod class. pthread is now optional via CMake. New 'quickstart.pdf' in directory 'doc'.
 - v0.1.7: fixed bugs (i.e. memory leaks) reported by <anonymous>.
 - v0.1.6: fixed documentation option for CMake (thanks to eichnerm). Use 'cmake .. -DINSTALL_DOC=ON" to generate the library documentation.
 - v0.1.5: CMake is supported (thanks to [email protected]). By default, the library is built in shared mode (non-static).
 - v0.1.4: added an alternative 'makeDetection' function. Updated makefile. Now 'make all' builds both the library and the test programs. 
 - v0.1.3: added 'detectvid' program. It performs detection on video sequences (e.g. avi). Use 'make test3' to generate it. Use 'make alltests' to generate all test programs. 
 - v0.1.2: small fixes in code.
 - v0.1.1: added 'detectobj' program. It can save detections to disk. Use 'make test2' to generate it. 
 - v0.1: first release.

libpabod's People

Contributors

mjmarin avatar

Watchers

James Cloos avatar  avatar

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.