Coder Social home page Coder Social logo

ahandsomeperson / scancontext Goto Github PK

View Code? Open in Web Editor NEW

This project forked from signalimagecv/scancontext

0.0 1.0 0.0 32.78 MB

Global LiDAR descriptor for place recognition and long-term localization

MATLAB 39.40% Jupyter Notebook 50.28% M 0.30% Python 10.02%

scancontext's Introduction

Scan Context

  • Scan Context is a global descriptor for LiDAR point cloud, which is proposed in this paper and details are easily summarized in this video .
@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:

  • A user can vary the resolution of a Scan Context. Below is the example of Scan Contexts' various resolutions for the same point cloud.

How to use?: example cases

  • The structure of this repository is composed of 3 example use cases.
  • Most of the codes are written in Matlab.
  • A directory matlab contains main functions including Scan Context generation and the distance function.
  • A directory example contains a full example code for a few applications. We provide a total 3 examples.
  1. basics contains a literally basic codes such as generation and can be a start point to understand Scan Context.

  2. place recognition is an example directory for our IROS18 paper. The example is conducted using KITTI sequence 00 and PlaceRecognizer.m is the main code. You can easily grasp the full pipeline of Scan Context-based place recognition via watching and following the PlaceRecognizer.m code. Our Scan Context-based place recognition system consists of two steps; description and search. The search step is then composed of two hierarchical stages (1. ring key-based KD tree for fast candidate proposal, 2. candidate to query pairwise comparison-based nearest search). We note that our coarse yaw aligning-based pairwise distance enables reverse-revisit detection well, unlike others. The pipeline is below.

  1. long-term localization is an example directory for our RAL19 paper. For the separation of mapping and localization, there are separated train and test steps. The main training and test codes are written in python and Keras, only excluding data generation and performance evaluation codes (they are written in Matlab), and those python codes are provided using jupyter notebook. We note that some path may not directly work for your environment but the evaluation codes (e.g., makeDataForPRcurveForSCIresult.m) will help you understand how this classification-based SCI-localization system works. The figure below depicts our long-term localization pipeline.

    More details of our long-term localization pipeline is found in the below paper and we also recommend you to watch this video .
@ARTICLE{ gkim-2019-ral,
    author = {G. {Kim} and B. {Park} and A. {Kim}}, 
    journal = {IEEE Robotics and Automation Letters}, 
    title = {1-Day Learning, 1-Year Localization: Long-Term LiDAR Localization Using Scan Context Image}, 
    year = {2019}, 
    volume = {4}, 
    number = {2}, 
    pages = {1948-1955}, 
    month = {April}
}

Acknowledgment

This work is supported by the Korea Agency for Infrastructure Technology Advancement (KAIA) grant funded by the Ministry of Land, Infrastructure and Transport of Korea (19CTAP-C142170-02), and [High-Definition Map Based Precise Vehicle Localization Using Cameras and LIDARs] project funded by NAVER LABS Corporation.

Contact

If you have any questions, contact here please

scancontext's People

Contributors

irapkaist avatar gisbi-kim avatar kxhit avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.