Skip to content

ipanousis/DAISY-BP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages