DaLI

This website is no longer updated. Please visit my new website.

This is an implementation of the Deformation and Light Invariant (DaLI) descriptor. The core of the library is written in C. Additionally a Matlab/Octave interface is provided.

DaLI
  • Type: library
  • Version: Jan, 2015
  • Language: C, matlab
  • License: GPLv3+
  • Dependencies ceigs

Overview

This code provides an implementation of the research paper:

Edgar Simo-Serra, Carme Torras, Francesc Moreno-Noguer
DaLI: Deformation and Light Invariant Descriptor
International Journal of Computer Vision (IJCV), 2015

Which was originally published in

F.Moreno-Noguer
Deformation and Illumination Invariant Feature Point Descriptor
Conference in Computer Vision and Pattern Recognition (CVPR), 2011

This allows local representation of image patches in such a way that they can be compared with strong invariance to both deformation and illumination.

The core of the code is written in C and is meant to be embedded in applications. It should be also possible to compile as a library and installed at a system level.

License

Copyright (C) <2011-2015> <Francesc Moreno-Noguer, Edgar Simo-Serra>

This program is free software: you can redistribute it and/or modify
it under the terms of the version 3 of the GNU General Public License
as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.      
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

Edgar Simo-Serra, Institut de Robotica i Informatica Industrial (CSIC/UPC), January 2015.
esimo@iri.upc.edu, http://www-iri.upc.es/people/esimo/

Installation

The software depends on the ceigs library which provides an elegant C frontend to the ARPACK library. Upon installing the ceigs library it should be possible to compile both the test application and the matlab/octave by simpling running make:

$ make

Usage

The descriptor can be used both from octave (theoretically also matlab) and C. For an example of usage from C see the “test.c” file. As it should be compiled you can also run it by doing

 #!bash
 $ ./test

You should get an output as the following:

Processing point 9 x 8...
   Computing mesh...
   Computing Laplace-Beltrami...
   Computing EigenVectors...
   Computing HKS...
   Computing HKS-SI...
   Done!
Processing point 310 x 0...
   Computing mesh...
   Computing Laplace-Beltrami...
   Computing EigenVectors...
   Computing HKS...
   Computing HKS-SI...
   Done!

 ...

2 vs 6: 3967.624281
3 vs 4: 1897.634498
3 vs 5: 2542.110789
3 vs 6: 2476.372066
4 vs 5: 2614.770836
4 vs 6: 2631.432283
5 vs 6: 956.697412

Additionally it is possible to run the application from octave. Currently matlab is not supported due to a library conflict, but in theory it should also be possible. To try the octave version from the “octave/” directory launch octave and run “test” as such:

>> test

You should get an output such as:

Processing point 9 x 8...
   Computing mesh...
   Computing Laplace-Beltrami...
   Computing EigenVectors...
   Computing HKS...
   Computing HKS-SI...
   Done!

 ...

3 vs 4: 2.238990
3 vs 5: 2.119231
3 vs 6: 2.050154
4 vs 5: 3.051406
4 vs 6: 3.014572
5 vs 6: 0.891666

If you use this code please cite:

 @Article{SimoSerraIJCV2015,
    author = {Edgar Simo-Serra and Carme Torras and Francesc Moreno Noguer},
    title = {{DaLI: Deformation and Light Invariant Descriptor}},
    journal = {International Journal of Computer Vision (IJCV)} volume = {1},
    pages = {1--1},
    year = 2015,
 }

Known Issues

Currently it is not possible to run in matlab due to library conflict issues. However, it is possible to run it in octave or integrate it into any C application.

Changelog

January 2015: Initial version 1.0 release