-
Notifications
You must be signed in to change notification settings - Fork 5
/
readme
105 lines (74 loc) · 3.39 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
95
96
97
98
99
100
101
102
103
104
Third Year Project in Computer Science at Bath, UK. (2011-12)
The project title is "Fast cross-device dense pixel correspondence using DAISY descriptors and OpenCL"
Contents
--------
- Aim
- Project Outcome
- How to Compile/Run
- Portability
- Documentation
Aim
-------
1) To use OpenCL on graphics cards to implement the computation of the
DAISY descriptor (cvlab.epfl.ch/alumni/tola/daisy.html) for an image in
a dense fashion, ie compute a descriptor for every pixel in the image.
2) use Belief Propagation (on GPU again with OpenCL) to
(after DAISY descriptor images have been computed for two images) to
search for the pixel correspondence between two images. This is also
aimed to be done densely, ie for as many descriptors as are available
in the descriptor images
The implementation of this algorithm in OpenCL should broaden the
usability/applicability of such an algorithm to a range of different
hardware/software without specific system versions or requirements.
This relies on the, currently strong, support of major OS/hardware
developers towards OpenCL.
Project Outcome
----------------
The project was successfully carried out and the first aim fulfilled. This is
the dense extraction of DAISY features for a frame.
The speed-up up until the end of the project was ~21x compared to C++ code
on a GTS250 card, and ~10x when the data is transferred back to RAM.
This is likely to improve in future so check the plots under doc/ for
speed-up and real-time capability with respect to image size.
The second aim of the project is left for future work as the project
complexity did not allow it to be developed in the given timescale. The
progression of the project currently is part of my master's project in 2012/13
where dense object recognition with DAISY will be attempted.
How to Compile/Run
-------------------
Pre-requisites:
cmake
g++
Follow the installation instructions for OpenCL at;
Nvidia - https://developer.nvidia.com/cuda-downloads
ATI - http://developer.amd.com/tools/hc/AMDAPPSDK/downloads/Pages/default.aspx
--------
The code in this repository is ready to be compiled and run by;
> ./autogen.sh
> make
> ./gdaisy -i <input image> [-save]
to extract features for an image, and -save to store them in a binary file with the
name <input image>.bdaisy
or
> ./gdaisy -profile [-save]
if you want to run a series of runs to measure the speed of DAISY extraction
on your GPU. Add -save to test speed including the transfer to RAM. This may
take upto a few minutes depending on your GPU. But well under a minute with a
recent device.
Portability
------------
Unfortunately there has not been time to do proper testing for portability
regarding ATI cards, Windows and Mac. The code so far has proven to run on Linux
and it does not show a problem with running on different Nvidia cards as is.
Testing does need to be done for ATI, primarily, to make sure the OpenCL code
is working correctly.
Testing for Windows and Mac is less critical as the changes that may be needed
will only be in the C/C++ code not OpenCL, which is much easier.
Documentation
---------------
Some documents regarding performance and the poster presented at the university
in 2011/12 are available under doc/.
For an implementation progress log and an indication of future development
see file progress.txt.
If you wish to know the implementation in detail contact me to provide the
final report for the project at ipanousis156@gmail.com