| ## Quick start: DELF extraction and matching | |
| [](https://arxiv.org/abs/1612.06321) | |
| ### Install DELF library | |
| To be able to use this code, please follow | |
| [these instructions](INSTALL_INSTRUCTIONS.md) to properly install the DELF | |
| library. | |
| ### Download Oxford buildings dataset | |
| To illustrate DELF usage, please download the Oxford buildings dataset. To | |
| follow these instructions closely, please download the dataset to the | |
| `tensorflow/models/research/delf/delf/python/examples` directory, as in the | |
| following commands: | |
| ```bash | |
| # From tensorflow/models/research/delf/delf/python/examples/ | |
| mkdir data && cd data | |
| wget http://www.robots.ox.ac.uk/~vgg/data/oxbuildings/oxbuild_images.tgz | |
| mkdir oxford5k_images oxford5k_features | |
| tar -xvzf oxbuild_images.tgz -C oxford5k_images/ | |
| cd ../ | |
| echo data/oxford5k_images/hertford_000056.jpg >> list_images.txt | |
| echo data/oxford5k_images/oxford_000317.jpg >> list_images.txt | |
| ``` | |
| ### Download pre-trained DELF model | |
| Also, you will need to download the trained DELF model: | |
| ```bash | |
| # From tensorflow/models/research/delf/delf/python/examples/ | |
| mkdir parameters && cd parameters | |
| wget http://storage.googleapis.com/delf/delf_gld_20190411.tar.gz | |
| tar -xvzf delf_gld_20190411.tar.gz | |
| ``` | |
| ### DELF feature extraction | |
| Now that you have everything in place, running this command should extract DELF | |
| features for the images `hertford_000056.jpg` and `oxford_000317.jpg`: | |
| ```bash | |
| # From tensorflow/models/research/delf/delf/python/examples/ | |
| python3 extract_features.py \ | |
| --config_path delf_config_example.pbtxt \ | |
| --list_images_path list_images.txt \ | |
| --output_dir data/oxford5k_features | |
| ``` | |
| ### Image matching using DELF features | |
| After feature extraction, run this command to perform feature matching between | |
| the images `hertford_000056.jpg` and `oxford_000317.jpg`: | |
| ```bash | |
| python3 match_images.py \ | |
| --image_1_path data/oxford5k_images/hertford_000056.jpg \ | |
| --image_2_path data/oxford5k_images/oxford_000317.jpg \ | |
| --features_1_path data/oxford5k_features/hertford_000056.delf \ | |
| --features_2_path data/oxford5k_features/oxford_000317.delf \ | |
| --output_image matched_images.png | |
| ``` | |
| The image `matched_images.png` is generated and should look similar to this one: | |
|  | |
| ### Troubleshooting | |
| #### `matplotlib` | |
| `matplotlib` may complain with a message such as `no display name and no | |
| $DISPLAY environment variable`. To fix this, one option is add the line | |
| `backend : Agg` to the file `.config/matplotlib/matplotlibrc`. On this problem, | |
| see the discussion | |
| [here](https://stackoverflow.com/questions/37604289/tkinter-tclerror-no-display-name-and-no-display-environment-variable). | |
| #### 'skimage' | |
| By default, skimage 0.13.XX or 0.14.1 is installed if you followed the | |
| instructions. According to | |
| [https://github.com/scikit-image/scikit-image/issues/3649#issuecomment-455273659] | |
| If you have scikit-image related issues, upgrading to a version above 0.14.1 | |
| with `pip3 install -U scikit-image` should fix the issue | |