forked from albertoCrive/homographyTrackingDemo
-
Notifications
You must be signed in to change notification settings - Fork 2
/
README
101 lines (62 loc) · 3.29 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
This code has been presented for the demo : "Tracking texture-less, shiny
objects with descriptor fields." Mixed and Augmented Reality (ISMAR), 2014 IEEE
International Symposium on. IEEE, 2014.
It allows to track homographies using the descriptor fields introduced in our
CVPR paper:
[1] Crivellaro Alberto and Vincent Lepetit. "Robust 3D Tracking with Descriptor
Fields.", CVPR 2014
Please cite [1] if you make use of this code.
Authors:
Alberto Crivellaro
Yannick Verdie
Kwang Moo Yi
Pascal Fua
Vincent Lepetit
For questions or comments please write to :
alberto<dot>crivellaro<at>epfl<dot>ch
================================================================================
BUILDING:
The software has been tested and successfully run in real time (> 30 fps) on
linux Ubuntu 14.04 on a MacBookPro i7 2.30GHz. It was built with gcc-4.9 and
openmp 4.0. We also tested on MacOS with clang (no openmp) and we also obtained
good performance (~20fps). Older versions of gcc/openmp could lead to worse
performances.
Prior to build the code you should install the (latest version of the)
following dependencies:
- opencv (we tested with 2.4.9 and 3.0)
- eigen 3 or more
Moreover, you should correctly configure your LD_LIBRARY_PATH and your
PKG_CONFIG_PATH. For building just 'make all’. The build produces :
- libC++/libHomographyEstimation.so : a C++ dynamic library for computing
descriptor fields out of a grayscale image, for computing the homography
between 2 images and several utilities for display, I/O, etc.
- ISMAR_Demo/homographyDemo : an executable for performing real time 3D
tracking of planar surfaces., it links to the c++ library and can be use as
example to understand how to link to the library.
- unit/unittests : some tests
================================================================================
EXECUTING THE DEMO:
./homographyDemo <camera_device_number>
you should initialize the template putting a planar surface in front of the
camera (covering at least all the region in the black rectangle on the image),
and then press:
1 for tracking using image intensities
2 for tracking using gradient magnitude
3 for tracking using descriptor fields
The optimization parameters are in
ISMAR_Demo/parameter/parameters*****Optimization.yml files. You can change them
for attempting to achieve a better stability.
================================================================================
USING THE LIBRARY FOR YOUR PROJECTS:
include libC++/HomographyEstimation.hpp in your code, and link with
libHomographyEstimation.so . For examples on how to use the different
utilities, you can take a look at the unit tests, more in particular :
void LucaskanadeSSDTest();
void LucaskanadeDescriptorFieldsTest();
void LucaskanadeVideoSSDSpeedTest();
void LucaskanadeVideoDesciptorFieldsSpeedTest();
void LucaskanadeVideoGradientMagnitudeSpeedTest();
================================================================================
USEFUL LINKS:
homepage of the project: http://cvlab.epfl.ch/page-107683-en.html
demonstration video: https://www.youtube.com/watch?v=r-WJDM6HyAs