# scancontext **Repository Path**: rogers34/scancontext ## Basic Information - **Project Name**: scancontext - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-10-26 - **Last Updated**: 2026-09-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Scan Context ## NEWS (Oct, 2021): Scan Context++ is accepted for T-RO! - Our extended study named Scan Context++ is accepted for T-RO. - Scan Context++: Structural Place Recognition Robust to Rotation and Lateral Variations in Urban Environments - [Paper](https://arxiv.org/pdf/2109.13494.pdf), [Summary](https://threadreaderapp.com/thread/1443044133937942533.html), [Video](https://youtu.be/ZWEqwYKQIeg) - The additional evaluation codes (e.g., lateral evaluations on Oxford Radar RobotCar dataset) with the new metric (we call it recall-distribution based on KL-D) will be added soon. ## Note - Scan Context can be easily integrated with any LiDAR odometry algorithms or any LiDAR sensors. Examples are: - Integrated with A-LOAM: [SC-A-LOAM](https://github.com/gisbi-kim/SC-A-LOAM) - Integrated with LeGO-LOAM: [SC-LeGO-LOAM](https://github.com/irapkaist/SC-LeGO-LOAM) - Integrated with LIO-SAM: [SC-LIO-SAM](https://github.com/gisbi-kim/SC-LIO-SAM) - Integrated with FAST-LIO2: [FAST_LIO_SLAM](https://github.com/gisbi-kim/FAST_LIO_SLAM) - Integrated with a basic ICP odometry: [PyICP-SLAM](https://github.com/gisbi-kim/PyICP-SLAM) - This implementation is fully python-based so slow but educational purpose. - If you find a fast python API for Scan Context, use [https://github.com/gisbi-kim/scancontext-pybind](https://github.com/gisbi-kim/scancontext-pybind) - Scan Context also works for radar. - Integrated with yeti-radar-odometry for radar SLAM: [navtech-radar-slam](https://github.com/gisbi-kim/navtech-radar-slam) - p.s. please see the ``fast_evaluator_radar`` directory for the radar place recognition evaluation (radar scan context was introduced in [MulRan dataset](https://sites.google.com/view/mulran-pr/home) paper). ## NEWS (April, 2020): C++ implementation - C++ implementation released! - See the directory `cpp/module/Scancontext` - Features - Light-weight: a single header and cpp file named "Scancontext.h" and "Scancontext.cpp" - Our module has KDtree and we used nanoflann. nanoflann is an also single-header-program and that file is in our directory. - Easy to use: A user just remembers and uses only two API functions; `makeAndSaveScancontextAndKeys` and `detectLoopClosureID`. - Fast: tested the loop detector runs at 10-15Hz (for 20 x 60 size, 10 candidates) - Example: Real-time LiDAR SLAM - We integrated the C++ implementation within the recent popular LiDAR odometry codes (e.g., LeGO-LOAM and A-LOAM). - That is, LiDAR SLAM = LiDAR Odometry (LeGO-LOAM) + Loop detection (Scan Context) and closure (GTSAM) - For details, see `cpp/example/lidar_slam` or refer these repositories: SC-LeGO-LOAM or SC-A-LOAM. --- - Scan Context is a global descriptor for LiDAR point cloud, which is proposed in this paper and details are easily summarized in this video . ``` @ARTICLE { gskim-2021-tro, AUTHOR = { Giseop Kim and Sunwook Choi and Ayoung Kim }, TITLE = { Scan Context++: Structural Place Recognition Robust to Rotation and Lateral Variations in Urban Environments }, JOURNAL = { IEEE Transactions on Robotics }, YEAR = { 2021 }, NOTE = { Accepted. To appear. }, } @INPROCEEDINGS { gkim-2018-iros, author = {Kim, Giseop and Kim, Ayoung}, title = { Scan Context: Egocentric Spatial Descriptor for Place Recognition within {3D} Point Cloud Map }, booktitle = { Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems }, year = { 2018 }, month = { Oct. }, address = { Madrid } } ``` - This point cloud descriptor is used for place retrieval problem such as place recognition and long-term localization. ## What is Scan Context? - Scan Context is a global descriptor for LiDAR point cloud, which is especially designed for a sparse and noisy point cloud acquired in outdoor environment. - It encodes egocentric visible information as below:




