<commit_before>* BOLD - Binary Online Learned Descriptor

** Introduction

[[./imgs/poster.png]]

Sample implementation of the method described in

#+begin_src 
@InProceedings{Balntas_2015_CVPR,
author = {<NAME> and <NAME>},
title = {BOLD - Binary Online Learned Descriptor For Efficient Image Matching},
journal = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2015}
}
#+end_src

Download the paper from [[http://www.iis.ee.ic.ac.uk/~vb2415/bold/BOLD-Binary-Online-Learned-Descriptor.pdf][http://www.iis.ee.ic.ac.uk/~vb2415/bold/BOLD-Binary-Online-Learned-Descriptor.pdf]]

** Compilation 

In order to run the example described in =main.cpp= you need to download the sample datasets from [[http://www.iis.ee.ic.ac.uk/~vb2415/bold/dataset-ubc-bold.tar.gz][http://www.iis.ee.ic.ac.uk/~vb2415/bold/dataset-ubc-bold.tar.gz]]
and extract the file inside the main git folder.

To compile the code type 
#+begin_src shell
cmake .
make
#+end_src

and run =./bold= to run a simple patches experiment on the =notredame=
dataset from from the
[[http://www.cs.ubc.ca/~mbrown/patchdata/patchdata.html][UBC Patches Dataset]]

The program will run print a series of evaluation results for the patch pairs
from the dataset above eg.

#+begin_src bash
0 296 136
1 125 31
1 237 77
.
.
.
1 147 39
0 292 136
1 125 26
#+end_src

The first column contains the patch pair label (0 negative, 1
positive), the second row contains the unmasked distance between the
two patches of the pair, and the third the masked distance using the
methodology described in our paper. 

Notice that the new masked distance in the case of positive patches is
(in terms of ratio) much smaller than the original compared to the
negative patches. This confirms the findings that the masked distance
is more discriminative.

** Note
Currently the BOLD code works with =32x32= patches. In order to
generalize it, convert the indexes of the patch tests in the
=bold.descr= file. 

** Contributor needed!
Recent work (PAMI under submission), shows that we can extend the
above masking framework to all the other binary descriptors (BRIEF,
BRISK, FREAK). If someone is willing to expand the masking framework
to the OpenCV class of binary descriptors, send me an
[[mailto:<EMAIL>][email]] and I can help out. <commit_msg>* updated README.org<commit_after>* BOLD - Binary Online Learned Descriptor

[[./imgs/poster.png]]

** Introduction

Sample implementation of the method described in

#+begin_src 
@InProceedings{Balntas_2015_CVPR,
author = {<NAME> and <NAME> <NAME>},
title = {BOLD - Binary Online Learned Descriptor For Efficient Image Matching},
journal = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2015}
}
#+end_src

Download the paper from [[http://www.iis.ee.ic.ac.uk/~vb2415/bold/BOLD-Binary-Online-Learned-Descriptor.pdf][http://www.iis.ee.ic.ac.uk/~vb2415/bold/BOLD-Binary-Online-Learned-Descriptor.pdf]]

** Compilation 

In order to run the example described in =main.cpp= you need to download the sample datasets from [[http://www.iis.ee.ic.ac.uk/~vb2415/bold/dataset-ubc-bold.tar.gz][http://www.iis.ee.ic.ac.uk/~vb2415/bold/dataset-ubc-bold.tar.gz]]
and extract the file inside the main git folder.

To compile the code type 
#+begin_src shell
cmake .
make
#+end_src

and run =./bold= to run a simple patches experiment on the =notredame=
dataset from from the
[[http://www.cs.ubc.ca/~mbrown/patchdata/patchdata.html][UBC Patches Dataset]]

The program will run print a series of evaluation results for the patch pairs
from the dataset above eg.

#+begin_src bash
0 296 136
1 125 31
1 237 77
.
.
.
1 147 39
0 292 136
1 125 26
#+end_src

The first column contains the patch pair label (0 negative, 1
positive), the second row contains the unmasked distance between the
two patches of the pair, and the third the masked distance using the
methodology described in our paper. 

Notice that the new masked distance in the case of positive patches is
(in terms of ratio) much smaller than the original compared to the
negative patches. This confirms the findings that the masked distance
is more discriminative.

** Contributor needed!
Recent work (PAMI under submission), shows that we can extend the
above masking framework to all the other binary descriptors (BRIEF,
BRISK, FREAK). If someone is willing to expand the masking framework
to the OpenCV class of binary descriptors, send me an
[[mailto:<EMAIL>][email]] and I can help out. 


** Note
Currently the BOLD code works with =32x32= patches. In order to
generalize it, convert the indexes of the patch tests in the
=bold.descr= file. 
{'fraction_non_alphanumeric': 0.09139669598798542, 'fraction_numerical': 0.029178287921046986, 'mean_word_length': 4.420930232558139, 'pattern_counts': {'":': 0, '<': 10, '<?xml version=': 0, '>': 10, 'https://': 0, 'lorem ipsum': 0, 'www.': 10, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1583382', 'n_tokens_mistral': 1579, 'n_tokens_neox': 1409, 'n_words': 605}