{"id":18792477,"url":"https://github.com/prbonn/online_place_recognition","last_synced_at":"2025-10-28T16:15:15.652Z","repository":{"id":83737691,"uuid":"94753441","full_name":"PRBonn/online_place_recognition","owner":"PRBonn","description":"Graph-based image sequences matching for the visual place recognition in changing environments.","archived":false,"fork":false,"pushed_at":"2022-10-02T11:39:19.000Z","size":2048,"stargazers_count":152,"open_issues_count":0,"forks_count":40,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-12-10T11:53:16.110Z","etag":null,"topics":["graph","localization","loop-closure","online","outdoor-localization","recognition","visual-place-recognition"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PRBonn.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-19T08:21:36.000Z","updated_at":"2024-12-06T14:58:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"bc95fbc5-9648-4366-8406-fd370c4e1686","html_url":"https://github.com/PRBonn/online_place_recognition","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PRBonn%2Fonline_place_recognition","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PRBonn%2Fonline_place_recognition/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PRBonn%2Fonline_place_recognition/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PRBonn%2Fonline_place_recognition/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PRBonn","download_url":"https://codeload.github.com/PRBonn/online_place_recognition/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230532448,"owners_count":18240792,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graph","localization","loop-closure","online","outdoor-localization","recognition","visual-place-recognition"],"created_at":"2024-11-07T21:20:05.548Z","updated_at":"2025-10-28T16:15:10.561Z","avatar_url":"https://github.com/PRBonn.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Graph-based matching of image sequences\n\nThis project is not maintained. Please consider a newer version [image_sequence_localizer](https://github.com/ovysotska/image_sequence_localizer).\n\n## What does this code do?\nGiven two sequences of images represented by the descriptors, the code constructs a data association graph and performs a search within this graph, so that for every query image, the code computes a matching hypothesis to an image in a database sequence as well as matching hypothesis for the previous images.\n\nThe matching procedure can be perfomed in two modes --- **feature based** and **cost matrix based** mode.\n\nFor more theoretical details, please refer to our paper [Lazy data association for image sequence matching under substantial appearance changes](http://www.ipb.uni-bonn.de/pdfs/vysotska16ral-icra.pdf).\n\nCheckout the video:\n\n[![Matching example video](http://img.youtube.com/vi/l-hNk7Z4lSk/0.jpg)](https://www.youtube.com/watch?v=l-hNk7Z4lSk\u0026feature=youtu.be \"Matching example video\")\n\n## Installation guide\n\n### Prerequisites\n\n* Yaml-cpp (requires BOOST till now): `sudo apt-get install libyaml-cpp-dev`\n* OpenCV: `sudo apt-get install libopencv-dev`\n* Qt5: `sudo apt-get install qt5-default`\n* (optional) Doxygen (generate documentation): `sudo apt-get install doxygen`\n\nFor the OSX install, you may need to run the following commands:\n\n * `brew install  yaml-cpp`\n * `brew install opencv`\n * `brew install doxygen`\n * `brew install qt5`\n * `export CMAKE_PREFIX_PATH=/usr/local/Cellar/qt/[YOUR VERSION]`\n    For example `eg. export CMAKE_PREFIX_PATH=/usr/local/Cellar/qt/5.8.0_2`\n\n### Build\nTo build the project, run the following commands from the main directory:\n\n* `mkdir build`\n* `cd build`\n* `cmake ..`\n* `make -j4`\n\n\nAdditionally, you should be able to generate documentation as follows:\n* `cd doc`\n* `doxygen online_place_recognition.conf`\n\nTo access the documentation run `firefox html/index.html`.\n\n## What do I need to run this code?\n\n* Precomputed image descriptors or cost matrix\n* Configuration file\n\nAn example of how to run the code please see [**RUN EXAMPLES**](examples/readme.md).\n\n\n#### Feature based matching\nIn this mode, the program operates using **precomputed image descriptors**.\nTo run the matching procedure you need to provide the feature files. An example of how to run the code can be found [feature based matching example](apps/feature_based_matching/readme.md). \n\nFor details on used feature descriptors please refer to [feature description](apps/feature_based_matching/readme.md#feature-format).\n\n**Note**: In this mode, individual features will be loaded and matched on demand. In order to be able to deal with dramatic visual changes, we typically operate with high-dimensional features and the matching procedure can take quite a long time--depending on the size and the complexity of the sequences.\n\n#### Cost matrix based matching\n\nFor this mode, we require the **cost matrix** between two sequences to be given/pre-computed. To compute the matching matrix, please see the following [estimating of a cost matrix example](apps/create_cost_matrix/readme.md).\n\nAn example on how to run the matching procedure in this mode can be found [cost matrix matching example](apps/cost_matrix_based_matching/readme.md).\n\n**Note**: This method may be used if you have rather small sequences (up to 1000 images). For bigger sequences, you may run into memory issues since the programs has to store a quite big matrix.\n\n## Adapting the code for custom features\n\nThis framework can be adapted to matching features of the different type --- your **own features**. To use the graph matching strategy with your **own features** see the following [description](src/features/readme.md).\n\n## Related publication\n\nPlease cite the related publication, if you use the code:\n\n```\n@article{vysotska2016lazy, \n  title     = {Lazy Data Association for Image Sequences Matching Under Substantial Appearance Changes},\n  author    = {Vysotska, Olga and Stachniss, Cyrill},\n  year      = {2016},\n  publisher = {IEEE Robotics and Automation Letters}\n  number    = {1},\n  pages     = {1-8},\n  volume    = {1},\n  doi       = {10.1109/LRA.2015.2512936}\n}\n```\n\n## Troubleshooting\n\nIn case the code is not working for you or you experience some code related problems, please consider openning an issue.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprbonn%2Fonline_place_recognition","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprbonn%2Fonline_place_recognition","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprbonn%2Fonline_place_recognition/lists"}