EBT is a library of C++ classes that implement edge based object tracking in robotics and vision, using textureless object detection and tracking of the 3D pose.
Detection and tracking schemes are coherently integrated in a particle filtering framework on the special Euclidean group, SE(3), in which the visual tracking problem is tackled by maintaining multiple hypotheses of the object pose. For textureless object detection, an efficient chamfer matching is employed so that a set of coarse pose hypotheses is estimated from the matching between 2D edge templates of an object and a query image. Particles are then initialized from the coarse pose hypotheses by randomly drawing based on costs of the matching. To ensure the initialized particles are at or close to the global optimum, an annealing process is performed after the initialization. While a standard edge-based tracking is employed after the annealed initialization, this library emploies a refinement process to establish improved correspondences between projected edge points from the object model and edge points from an input image.
In the root library folder execute:
#!bash
$ mkdir build
$ cd build
$ cmake ..
$ make check (optional, runs unit tests)
$ make install
Prerequisites:
- Boost >= 1.43 (Ubuntu:
sudo apt-get install libboost-all-dev
) - OpenGL >= 1.10 (Ubuntu:
sudo apt-get install libglew-dev
) - GLEW >= 1.10 (Ubuntu:
sudo apt-get install libglew-dev
) - GLUT >=2.8.1 (Ubuntu:
sudo apt-get install freeglut3-dev
) - OpenCV = 2.4 to 2.4.9
(Ubuntu:build from sourcesudo apt-get install libopencv-dev
) - Note: OpenCV has changed with respect to nonfree components of the library. Patented features such as SURF have now been moved to https://github.com/Itseez/opencv_contrib, and are thus no longer shipped with the standard Debian package. In 2.4.9, you must enable the
BUILD_opencv_nonfree
flag when compiling. Also, portions of the old C API have also chenged in newer verssions of OpenCV as well (>2.4.9), and is thus not recomended. - LAPACK >= 3.5 (Ubuntu:
sudo apt-get install liblapack3
) - CMake >= 2.6 (Ubuntu:
sudo apt-get install cmake
)