Benchmark tools for Compressive LiDAR-to-map registration

Overview

Benchmark tools for Compressive LiDAR-to-map registration

This repo contains the released version of code and datasets used for our IROS 2021 paper: "Map Compressibility Assessment for LiDAR Registration [link]. If you find the code useful for your work, please cite:

@inproceedings{Chang21iros,
   author = {M.-F. Chang and W. Dong and J.G. Mangelson and M. Kaess and S. Lucey},
   title = {Map Compressibility Assessment for {LiDAR} Registration},
   booktitle = {Proc. IEEE/RSJ Intl. Conf. on Intelligent Robots andSystems, IROS},
   address = {Prague, Czech Republic},
   month = sep,
   year = {2021}
}

Environment Setup

The released codebase supports following methods:

  1. Point-to-point ICP (from open3d)
  2. Point-to-plane ICP (from open3d)
  3. FPFH (with RANSAC from open3d or Teaser++)
  4. FCGF (with RANSAC from open3d or Teaser++)
  5. D3Feat (with RANSAC from open3d or Teaser++)

To run Teaser++, please also install from https://github.com/MIT-SPARK/TEASER-plusplus (python bindings required). One can build install the environment with the following conda command:

conda create --name=benchmark  python=3.6  numpy open3d=0.12  tqdm pytorch cpuonly -c pytorch -c open3d-admin -c conda-forge 
conda activate benchmark
pip install pillow==6.0 #for visualization

Datasets

The preprocessed data can be downloaded from [link]. The following data were provided:

  1. Preprocessed KITTI scan/local map pairs
  2. Preprocessed Argoverse Tracking scan/local map pairs
  3. FCGF and D3Feat features
  4. The ground truth poses

We haved preprocessed the results from FCGF and D3Feat into pickle files. The dataset is organized as source-target pairs. The source is the input LiDAR scan and the target is the cropped local map with initial LiDAR pose.

By default, we put the data in ./data folder. Please download the corresponding files from [link] and put/symlink it in ./data. The file structure is as follows:

./data
   ├─ data_Argoverse_Tracking
   │    ├─ test_dict_maps.pickle
   │    ├─ test_list_T_gt.pickle
   │    └─ test_samples.pickle
   │ 
   ├─ data_KITTI
   │    ├─ test_dict_maps.pickle
   │    ├─ test_list_T_gt.pickle
   │    └─ test_samples.pickle
   │ 
   ├─ deep
   │    ├─ d3feat.results.pkl.Argoverse_Tracking
   │    ├─ d3feat.results.pkl.KITTI
   │    ├─ fcgf.results.pkl.Argoverse_Tracking
   │    └─ fcgf.results.pkl.KITTI
----

Usage

To run the code, simply use the following command and specify the config file name.:

python3 run_eval.py --path_cfg=configs.config

For trying out existing methods, first edit config.py to config the method list, the dataset name, and the local dataset path.

For trying out new methods, please add the registration function to tester.py and add the method configuration to method.py and the parameters to method.json.

To visualize the resulting recall curves, please run

python3 make_recall_figure_threshold.py --path_cfg=configs.config

It will generate the recall plot and error density plot in ./output_eval_{dataset_name}. Here is an expected outout:

Acknowledgement

This work was supported by the CMU Argo AI Center for Autonomous Vehicle Research. We also thank our labmates for the valuable suggestions to improve this paper.

References

  1. Teaser++
  2. Open3d
  3. KITTI Odometry Dataset
  4. Argoverse 3D Tracking 1.1
  5. FCGF
  6. D3Feat
Owner
Allie
PhD student in Robotics Institute of Carnegie Mellon University
Allie
SoK: Vehicle Orientation Representations for Deep Rotation Estimation

SoK: Vehicle Orientation Representations for Deep Rotation Estimation Raymond H. Tu, Siyuan Peng, Valdimir Leung, Richard Gao, Jerry Lan This is the o

FIRE Capital One Machine Learning of the University of Maryland 12 Oct 07, 2022
LocUNet is a deep learning method to localize a UE based solely on the reported signal strengths from a set of BSs.

LocUNet LocUNet is a deep learning method to localize a UE based solely on the reported signal strengths from a set of BSs. The method utilizes accura

4 Oct 05, 2022
Learning Visual Words for Weakly-Supervised Semantic Segmentation

[IJCAI 2021] Learning Visual Words for Weakly-Supervised Semantic Segmentation Implementation of IJCAI 2021 paper Learning Visual Words for Weakly-Sup

Lixiang Ru 24 Oct 05, 2022
Awesome-google-colab - Google Colaboratory Notebooks and Repositories

Unofficial Google Colaboratory Notebook and Repository Gallery Please contact me to take over and revamp this repo (it gets around 30k views and 200k

Derek Snow 1.2k Jan 03, 2023
This repository contains a PyTorch implementation of the paper Learning to Assimilate in Chaotic Dynamical Systems.

Amortized Assimilation This repository contains a PyTorch implementation of the paper Learning to Assimilate in Chaotic Dynamical Systems. Abstract: T

4 Aug 16, 2022
An pytorch implementation of Masked Autoencoders Are Scalable Vision Learners

An pytorch implementation of Masked Autoencoders Are Scalable Vision Learners This is a coarse version for MAE, only make the pretrain model, the fine

FlyEgle 214 Dec 29, 2022
Repository for Traffic Accident Benchmark for Causality Recognition (ECCV 2020)

Causality In Traffic Accident (Under Construction) Repository for Traffic Accident Benchmark for Causality Recognition (ECCV 2020) Overview Data Prepa

Tackgeun 21 Nov 20, 2022
Trajectory Variational Autoencder baseline for Multi-Agent Behavior challenge 2022

MABe_2022_TVAE: a Trajectory Variational Autoencoder baseline for the 2022 Multi-Agent Behavior challenge This repository contains jupyter notebooks t

Andrew Ulmer 15 Nov 08, 2022
Tutorial in Python targeted at Epidemiologists. Will discuss the basics of analysis in Python 3

Python-for-Epidemiologists This repository is an introduction to epidemiology analyses in Python. Additionally, the tutorials for my library zEpid are

Paul Zivich 120 Nov 17, 2022
Identifying Stroke Indicators Using Rough Sets

Identifying Stroke Indicators Using Rough Sets With the spirit of reproducible research, this repository contains all the codes required to produce th

Muhammad Salman Pathan 0 Jun 09, 2022
Implementation for Panoptic-PolarNet (CVPR 2021)

Panoptic-PolarNet This is the official implementation of Panoptic-PolarNet. [ArXiv paper] Introduction Panoptic-PolarNet is a fast and robust LiDAR po

Zixiang Zhou 126 Jan 01, 2023
Semantic-aware Grad-GAN for Virtual-to-Real Urban Scene Adaption

SG-GAN TensorFlow implementation of SG-GAN. Prerequisites TensorFlow (implemented in v1.3) numpy scipy pillow Getting Started Train Prepare dataset. W

lplcor 61 Jun 07, 2022
Unofficial implementation of "Swin Transformer: Hierarchical Vision Transformer using Shifted Windows" (https://arxiv.org/abs/2103.14030)

Swin-Transformer-Tensorflow A direct translation of the official PyTorch implementation of "Swin Transformer: Hierarchical Vision Transformer using Sh

52 Dec 29, 2022
Code for Active Learning at The ImageNet Scale.

Code for Active Learning at The ImageNet Scale. This repository implements many popular active learning algorithms and allows training with torch's DDP.

Zeyad Emam 47 Dec 12, 2022
PyTorch implementation for the paper Visual Representation Learning with Self-Supervised Attention for Low-Label High-Data Regime

Visual Representation Learning with Self-Supervised Attention for Low-Label High-Data Regime Created by Prarthana Bhattacharyya. Disclaimer: This is n

Prarthana Bhattacharyya 5 Nov 08, 2022
Editing a classifier by rewriting its prediction rules

This repository contains the code and data for our paper: Editing a classifier by rewriting its prediction rules Shibani Santurkar*, Dimitris Tsipras*

Madry Lab 86 Dec 27, 2022
City-Scale Multi-Camera Vehicle Tracking Guided by Crossroad Zones Code

City-Scale Multi-Camera Vehicle Tracking Guided by Crossroad Zones Requirements Python 3.8 or later with all requirements.txt dependencies installed,

88 Dec 12, 2022
LUKE -- Language Understanding with Knowledge-based Embeddings

LUKE (Language Understanding with Knowledge-based Embeddings) is a new pre-trained contextualized representation of words and entities based on transf

Studio Ousia 587 Dec 30, 2022
Convert Apple NeuralHash model for CSAM Detection to ONNX.

Apple NeuralHash is a perceptual hashing method for images based on neural networks. It can tolerate image resize and compression.

Asuhariet Ygvar 1.5k Dec 31, 2022
git《Pseudo-ISP: Learning Pseudo In-camera Signal Processing Pipeline from A Color Image Denoiser》(2021) GitHub: [fig5]

Pseudo-ISP: Learning Pseudo In-camera Signal Processing Pipeline from A Color Image Denoiser Abstract The success of deep denoisers on real-world colo

Yue Cao 51 Nov 22, 2022