Giter Club home page Giter Club logo

fresco's Introduction

FreSCo

Frequency-Domain Scan Context for Robust LiDAR-based Place Recognition with Translation and Rotation Invariance.

News

This work is now accepted for ICARCV 2022.

1. Introducing FreSCo

Place recognition is a task expected to recognize a place when revisiting it using data from sensors like Camera or LiDAR. Existing works on hand-crafted global descriptors for LiDAR-based place recognition show remarkable performance, yet are usually viewpoint-dependent. The capibility of viewpoint invariance is important, as when revists occur, one cannot assure the new viewpoint around the same place does not deviate from the former one.

FreSCo is a novel global descriptor inspired by Scan Context and LiDAR Iris, but provides both translation invariance and rotation invariance at the same time.

2. How to Use

2.1 Data Preprocessing

Note that we separated the preprocessing part of the code from the project, and users may find more about how to preprocess the data from publicly available datasets (e.g. MulRan, KITTI, and Oxford Radar) at Point-Cloud-Preprocessing-Tools.

2.2 Getting Your Data Ready

Make sure the <keyframes_root_dir> directory is organized as follows:

<keyframes_root_dir>
├ ... 
├ non_ground_point_cloud/ <- folder for ground-removed point clouds in pcd format
├ output_multi_bev/ <- folder for multi-layer BEV images(NOT used currently)
└ output_single_bev <- folder for single-layer BEV images

2.3 Run Estimations

Check the bvm_dir and gt_pose_filename in ./fresco-matlab/test4XXX.m.

XXX is the sequence name, can be KASIT03, KITTI08 or Oxford.

Make sure they look like this:

bvm_dir = '<keyframes_root_dir>/output_single_bev/csv/';
gt_pose_filename = '<keyframes_root_dir>/keyframe_pose.csv';

Remember to replace <keyframes_root_dir> with the actual directory path.

Now run this script. It first computes the descriptors (if not cached), then computes the similarities, and finally estimate the performance in different threshold settings.

After the computations are done, it visualizes the retrieval results on the trajectory and shows precision-recall curve.

3. Performance

Details can be found in the paper.

3.1 Precision-Recall


KAIST03

KITTI 08

Oxford

3.2 Visualizations

3.2.1 MulRan KAIST 03


FreSCo

Scan Context

LiDAR Iris

LiDAR ORB

3.2.2 KITTI 08


FreSCo

Scan Context

LiDAR Iris

LiDAR ORB

3.2.3 Oxford Robotcar Radar


FreSCo

Scan Context

LiDAR Iris

LiDAR ORB

4. Citation

If you find this work useful to your research, please cite our paper (PDF):

@article{fan2022fresco,
  title={FreSCo: Frequency-Domain Scan Context for LiDAR-based Place Recognition with Translation and Rotation Invariance},
  author={Fan, Yongzhi and Du, Xin and Luo, Lun and Shen, Jizhong},
  journal={arXiv preprint arXiv:2206.12628},
  year={2022}
}

5. TO-DOs

  • Re-implement the main framework in C++;
  • Try creating the keys using VLAD / NetVLAD;
  • Integrate the framework to popular LiDAR-Inertial SLAM projects.

fresco's People

Contributors

soytony avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

fresco's Issues

C++

Thanks for sharing! When will the C++ language version be released please? Also what are the benefits of writing in matlab?

未找到的函数定义

我在computeFFT.m的文件中,发现了一个叫computeComponentAngle的函数,但是我在该文件的后面函数定义中并没有找到这个函数吗,并且在文件夹内也没有看到这个函数,请问是如何定义的?
微信图片_20240809152557

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.