All Projects → BAILOOL → PlaceRecognition-LoopDetection

BAILOOL / PlaceRecognition-LoopDetection

Licence: MIT license
Light-weight place recognition and loop detection using road markings

Programming Languages

matlab
3953 projects
C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to PlaceRecognition-LoopDetection

lostX
(RSS 2018) LoST - Visual Place Recognition using Visual Semantics for Opposite Viewpoints across Day and Night
Stars: ✭ 60 (+20%)
Mutual labels:  place-recognition
MinkLocMultimodal
MinkLoc++: Lidar and Monocular Image Fusion for Place Recognition
Stars: ✭ 65 (+30%)
Mutual labels:  place-recognition
zero-shot-indoor-localization-release
The official code and datasets for "Zero-Shot Multi-View Indoor Localization via Graph Location Networks" (ACMMM 2020)
Stars: ✭ 44 (-12%)
Mutual labels:  place-recognition
so dso place recognition
A Fast and Robust Place Recognition Approach for Stereo Visual Odometry using LiDAR Descriptors
Stars: ✭ 52 (+4%)
Mutual labels:  place-recognition
place-recognition
Visual Place Recognition implemented in PyTorch
Stars: ✭ 41 (-18%)
Mutual labels:  place-recognition
seq2single
Visual place recognition from opposing viewpoints under extreme appearance variations
Stars: ✭ 15 (-70%)
Mutual labels:  place-recognition
FAST LIO SLAM
LiDAR SLAM = FAST-LIO + Scan Context
Stars: ✭ 183 (+266%)
Mutual labels:  place-recognition
MinkLoc3D
MinkLoc3D: Point Cloud Based Large-Scale Place Recognition
Stars: ✭ 83 (+66%)
Mutual labels:  place-recognition
LPD-net
LPD-Net: 3D Point Cloud Learning for Large-Scale Place Recognition and Environment Analysis, ICCV 2019, Seoul, Korea
Stars: ✭ 75 (+50%)
Mutual labels:  place-recognition

Light-weight place recognition and loop detection using road markings

View PlaceRecognition-LoopDetection on File Exchange

In order to reproduce results presented in the paper, follow the procedure below:

  1. Download the PlaceRecognition and LoopDetection 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
│           ...
  1. 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.
  1. 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}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].