https://github.com/bailool/placerecognition-loopdetection
Light-weight place recognition and loop detection using road markings
https://github.com/bailool/placerecognition-loopdetection
computer-vision cpp11 loop-detection matlab place-recognition road-markings
Last synced: 9 months ago
JSON representation
Light-weight place recognition and loop detection using road markings
- Host: GitHub
- URL: https://github.com/bailool/placerecognition-loopdetection
- Owner: BAILOOL
- License: mit
- Created: 2017-06-28T07:07:15.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2021-03-12T08:55:51.000Z (about 5 years ago)
- Last Synced: 2025-06-04T10:07:24.324Z (9 months ago)
- Topics: computer-vision, cpp11, loop-detection, matlab, place-recognition, road-markings
- Language: MATLAB
- Homepage: https://www.researchgate.net/publication/320557008_Light-weight_place_recognition_and_loop_detection_using_road_markings
- Size: 28.3 KB
- Stars: 57
- Watchers: 6
- Forks: 24
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Light-weight place recognition and loop detection using road markings
[](https://uk.mathworks.com/matlabcentral/fileexchange/88718-placerecognition-loopdetection)
In order to reproduce results presented in the [paper](https://www.researchgate.net/publication/320557008_Light-weight_place_recognition_and_loop_detection_using_road_markings), follow the procedure below:
1. Download the [PlaceRecognition](https://cloud.frameau.xyz/index.php/s/qn7cNaS6sg4XTnJ) and [LoopDetection](https://cloud.frameau.xyz/index.php/s/XZb6aqRrj9YDE83) datasets.
The datasets structure are the following:
```
PlaceRecognition
│ stereo_params_sequence1.txt #stereo parameters for SLAM for Sequence1
| stereo_params_sequence2.txt #stereo parameters for SLAM for Sequence2
| SLAM_Poses_Sequence1.txt #poses of Sequence1 obtained by SLAM
| SLAM_Poses_Sequence2.txt #poses of Sequence2 obtained by SLAM
│ road_marking_centroids_sequence1.txt #road markings centroids&label of Sequence1 images (not used for provided codes)
| road_marking_centroids_sequence2.txt #road markings centroids&label of Sequence2 images (not used for provided codes)
| road_marking_centroids_combined.txt #road markings centroids&label of Sequence1 and Sequence2 images (not used for provided codes)
| road_marking_centroids_3Dposition.txt #road markings centroids&label 3D position of both sequences (give path to this to run the codes)
└───Sequence1 #stores rectified images from Left and Right cameras
│ └───Left
│ | 000000.png
│ | 000001.png
│ | ...
│ └───Right
│ 000000.png
│ 000001.png
│ ...
│
└───Sequence2 #stores rectified images from Left and Right cameras
│ └───Left
│ | 000000.png
│ | 000001.png
│ | ...
│ └───Right
│ 000000.png
│ 000001.png
│ ...
```
```
LoopDetection
│ stereo_params_sequence.txt #stereo parameters for SLAM for Sequence
| SLAM_Poses_Sequence.txt #poses of Sequence obtained by SLAM
│ road_marking_centroids.txt #road markings centroids&label of Sequence images
| road_marking_centroids_3Dposition.txt #road markings centroids&label 3D position of both sequences (give path to this to run the codes)
└───Sequence #stores rectified images from Left and Right cameras
│ └───Left
│ | 000000.png
│ | 000001.png
│ | ...
│ └───Right
│ 000000.png
│ 000001.png
│ ...
```
2. Provide paths to appropriate files:
* set the following in *AlgorithmCode/input_info.txt* file ( make sure you do not have spaces in your path!):
- search window size
- path to *road_marking_centroids_3Dposition.txt*
- path to *image_matches.txt* (the code creates this file by itself)
* Matlab codes (*LoopDetectionDrawPoses.m*, *VisualizeImageMatches.m*, *VisualizeMatchedRegionOnMap.m*) in both *PlaceRecognition* and *LoopDetection* folders contain path parameters that have to be set appropriately.
3. Compile main code code (written in cpp) in *AlgorithmCode* directory using cmake:
```
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release .. #for Release mode
cmake -DCMAKE_BUILD_TYPE=Debug .. #for Debug mode
make
```
To run the code ``` ./Place_Recognition ../input_info.txt ```.
Run Matlab codes from appropriate foldes (*PlaceRecognition* or *LoopDetection*) to visualize results.
## Citation
If you use this code or dataset in your research, please cite:
```
@article{bailo2017light,
title={Light-weight place recognition and loop detection using road markings},
author={Bailo, Oleksandr and Rameau, Francois and Kweon, In So},
journal={arXiv preprint arXiv:1710.07434},
year={2017}
}
```