PointCNN: Convolution On X-Transformed Points (NeurIPS 2018)

Overview

PointCNN: Convolution On X-Transformed Points

Created by Yangyan Li, Rui Bu, Mingchao Sun, Wei Wu, Xinhan Di, and Baoquan Chen.

Introduction

PointCNN is a simple and general framework for feature learning from point cloud, which refreshed five benchmark records in point cloud processing (as of Jan. 23, 2018), including:

  • classification accuracy on ModelNet40 (91.7%, with 1024 input points only)
  • classification accuracy on ScanNet (77.9%)
  • segmentation part averaged IoU on ShapeNet Parts (86.13%)
  • segmentation mean IoU on S3DIS (65.39%)
  • per voxel labelling accuracy on ScanNet (85.1%)

See our preprint on arXiv (accepted to NeurIPS 2018) for more details.

Pretrained models can be downloaded from here.

Performance on Recent Benchmarks

Revisiting Point Cloud Classification: A New Benchmark Dataset and Classification Model on Real-World Data

PartNet: A Large-scale Benchmark for Fine-grained and Hierarchical Part-level 3D Object Understanding

ABC: A Big CAD Model Dataset For Geometric Deep Learning

Practical Applications

3D cities: Deep Learning in three-dimensional space (from Esri)

PointCNN: replacing 50,000 man hours with AI (from Esri)

Point Cloud Segmentation using PointCNN in ArcGIS API for Python (from Esri)

More Implementations

We highly welcome issues, rather than emails, for PointCNN related questions.

License

Our code is released under MIT License (see LICENSE file for details).

Code Organization

The core X-Conv and PointCNN architecture are defined in pointcnn.py.

The network/training/data augmentation hyper parameters for classification tasks are defined in pointcnn_cls, for segmentation tasks are defined in pointcnn_seg.

Explanation of X-Conv and X-DeConv Parameters

Take the xconv_params and xdconv_params from shapenet_x8_2048_fps.py for example:

xconv_param_name = ('K', 'D', 'P', 'C', 'links')
xconv_params = [dict(zip(xconv_param_name, xconv_param)) for xconv_param in
                [(8, 1, -1, 32 * x, []),
                 (12, 2, 768, 32 * x, []),
                 (16, 2, 384, 64 * x, []),
                 (16, 6, 128, 128 * x, [])]]

xdconv_param_name = ('K', 'D', 'pts_layer_idx', 'qrs_layer_idx')
xdconv_params = [dict(zip(xdconv_param_name, xdconv_param)) for xdconv_param in
                 [(16, 6, 3, 2),
                  (12, 6, 2, 1),
                  (8, 6, 1, 0),
                  (8, 4, 0, 0)]]

Each element in xconv_params is a tuple of (K, D, P, C, links), where K is the neighborhood size, D is the dilation rate, P is the representative point number in the output (-1 means all input points are output representative points), and C is the output channel number. The links are used for adding DenseNet style links, e.g., [-1, -2] will tell the current layer to receive inputs from the previous two layers. Each element specifies the parameters of one X-Conv layer, and they are stacked to create a deep network.

Each element in xdconv_params is a tuple of (K, D, pts_layer_idx, qrs_layer_idx), where K and D have the same meaning as that in xconv_params, pts_layer_idx specifies the output of which X-Conv layer (from the xconv_params) will be the input of this X-DeConv layer, and qrs_layer_idx specifies the output of which X-Conv layer (from the xconv_params) will be forwarded and fused with the output of this X-DeConv layer. The P and C parameters of this X-DeConv layer is also determined by qrs_layer_idx. Similarly, each element specifies the parameters of one X-DeConv layer, and they are stacked to create a deep network.

PointCNN Usage

PointCNN is implemented and tested with Tensorflow 1.6 in python3 scripts. Tensorflow before 1.5 version is not recommended, because of API. It has dependencies on some python packages such as transforms3d, h5py, plyfile, and maybe more if it complains. Install these packages before the use of PointCNN.

If you can only use Tensorflow 1.5 because of OS factor(UBUNTU 14.04),please modify "isnan()" to "std::nan()" in "/usr/local/lib/python3.5/dist-packages/tensorflow/include/tensorflow/core/framework/numeric_types.h" line 49

Here we list the commands for training/evaluating PointCNN on classification and segmentation tasks on multiple datasets.

  • Classification

    • ModelNet40

    cd data_conversions
    python3 ./download_datasets.py -d modelnet
    cd ../pointcnn_cls
    ./train_val_modelnet.sh -g 0 -x modelnet_x3_l4
    
    • ScanNet

    Please refer to http://www.scan-net.org/ for downloading ScanNet task data and scannet_labelmap, and refer to https://github.com/ScanNet/ScanNet/tree/master/Tasks/Benchmark for downloading ScanNet benchmark files:

    scannet_dataset_download

    |_ data

    |_ scannet_labelmap

    |_ benchmark

    cd ../data/scannet/scannet_dataset_download/
    mv ./scannet_labelmap/scannet-labels.combined.tsv ../benchmark/
    
    #./pointcnn_root
    cd ../../../pointcnn/data_conversions
    python extract_scannet_objs.py -f ../../data/scannet/scannet_dataset_download/data/ -b ../../data/scannet/scannet_dataset_download/benchmark/ -o ../../data/scannet/cls/
    python prepare_scannet_cls_data.py -f ../../data/scannet/cls/
    cd ../pointcnn_cls/
    ./train_val_scannet.sh -g 0 -x scannet_x3_l4
    
    • tu_berlin

    cd data_conversions
    python3 ./download_datasets.py -d tu_berlin
    python3 ./prepare_tu_berlin_data.py -f ../../data/tu_berlin/ -a --create-train-test
    cd ../pointcnn_cls
    ./train_val_tu_berlin.sh -g 0 -x tu_berlin_x3_l4
    
    • quick_draw

    Note that the training/evaluation of quick_draw requires LARGE RAM, as we load all stokes into RAM and converting them into point cloud on-the-fly.

    cd data_conversions
    python3 ./download_datasets.py -d quick_draw
    cd ../pointcnn_cls
    ./train_val_quick_draw.sh -g 0 -x quick_draw_full_x2_l6
    
    • MNIST

    cd data_conversions
    python3 ./download_datasets.py -d mnist
    python3 ./prepare_mnist_data.py -f ../../data/mnist
    cd ../pointcnn_cls
    ./train_val_mnist.sh -g 0 -x mnist_x2_l4
    
    • CIFAR-10

    cd data_conversions
    python3 ./download_datasets.py -d cifar10
    python3 ./prepare_cifar10_data.py
    cd ../pointcnn_cls
    ./train_val_cifar10.sh -g 0 -x cifar10_x3_l4
    
  • Segmentation

    We use farthest point sampling (the implementation from PointNet++) in segmentation tasks. Compile FPS before the training/evaluation:

    cd sampling
    bash tf_sampling_compile.sh
    
    • ShapeNet

    cd data_conversions
    python3 ./download_datasets.py -d shapenet_partseg
    python3 ./prepare_partseg_data.py -f ../../data/shapenet_partseg
    cd ../pointcnn_seg
    ./train_val_shapenet.sh -g 0 -x shapenet_x8_2048_fps
    ./test_shapenet.sh -g 0 -x shapenet_x8_2048_fps -l ../../models/seg/pointcnn_seg_shapenet_x8_2048_fps_xxxx/ckpts/iter-xxxxx -r 10
    cd ../evaluation
    python3 eval_shapenet_seg.py -g ../../data/shapenet_partseg/test_label -p ../../data/shapenet_partseg/test_data_pred_10 -a
    
    • S3DIS

    Please refer to data_conversions for downloading S3DIS, then:

    cd data_conversions
    python3 prepare_s3dis_label.py
    python3 prepare_s3dis_data.py
    python3 prepare_s3dis_filelists.py
    mv S3DIS_files/* ../../data/S3DIS/out_part_rgb/
    ./train_val_s3dis.sh -g 0 -x s3dis_x8_2048_fps -a 1
    ./test_s3dis.sh -g 0 -x s3dis_x8_2048_fps -a 1 -l ../../models/seg/s3dis_x8_2048_fps_xxxx/ckpts/iter-xxxxx -r 4
    cd ../evaluation
    python3 s3dis_merge.py -d <path to *_pred.h5>
    python3 eval_s3dis.py
    

We use a hidden marker file to note when prepare is finished to avoid re-processing. This cache can be invalidated by deleting the markers.

Please notice that these command just for Area 1 (specified by -a 1 option) validation. Results on other Areas can be computed by iterating -a option.

  • ScanNet

Please refer to data_conversions for downloading ScanNet, then:

cd data_conversions
python3 prepare_scannet_seg_data.py
python3 prepare_scannet_seg_filelists.py
cd ../pointcnn_seg
./train_val_scannet.sh -g 0 -x scannet_x8_2048_k8_fps
./test_scannet.sh -g 0 -x scannet_x8_2048_k8_fps -l ../../models/seg/pointcnn_seg_scannet_x8_2048_k8_fps_xxxx/ckpts/iter-xxxxx -r 4
cd ../evaluation
python3 eval_scannet.py -d <path to *_pred.h5> -p <path to scannet_test.pickle>
  • Semantic3D

Please check the free disk space before start, about 900 GB will be required.

cd data_conversions
bash download_semantic3d.sh
bash un7z_semantic3d.sh
python3 prepare_semantic3d_data.py
mkdir ../../data/semantic3d/filelists
python3 prepare_semantic3d_filelists.py
cd ../pointcnn_seg
./train_val_semantic3d.sh -g 0 -x semantic3d_x4_2048_fps
./test_semantic3d.sh -g 0 -x semantic3d_x4_2048_fps -l <path to ckpt>
cd ../evaluation
python3 semantic3d_merge.py -d <path to *_pred.h5> -v <reduced or full>
  • Tensorboard

    If you want to monitor your train step, we recommend you use the following command
    cd <your path>/PointCNN
    tensorboard --logdir=../models/<seg/cls> <--port=6006>
    
Comments
  • ./train_val_modelnet.sh -g 0 -x modelnet_x3_l4

    ./train_val_modelnet.sh -g 0 -x modelnet_x3_l4

    hello ,when I excute the commad: ./train_val_modelnet.sh -g 0 -x modelnet_x3_l4 it just print "Train/Val with setting modelnet_x3_l4 on GPU 0!",but no any other action,why???

    opened by chunhuaqiushi1989 15
  • issue about the tf_sampling_compile.sh

    issue about the tf_sampling_compile.sh

    when I compile tf_sampling_so.so file some warning happened: nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). but the tf_sampling_so.so compiled successfully then I run the command: ./train_val_shapenet.sh -g 0 -x shapenet_x8_2048_fps error messages in pointcnn_seg_shapenet_x8_2048_fps.txt like that: Traceback (most recent call last): File "../train_val_seg.py", line 295, in main() File "../train_val_seg.py", line 127, in main net = model.Net(points_augmented, features_augmented, is_training, setting) File "/home/whf/ZYM/PointCNN/pointcnn_seg.py", line 11, in init PointCNN.init(self, points, features, is_training, setting) File "/home/whf/ZYM/PointCNN/pointcnn.py", line 64, in init from sampling import tf_sampling File "/home/whf/ZYM/PointCNN/sampling/tf_sampling.py", line 15, in sampling_module=tf.load_op_library(os.path.join(BASE_DIR, 'tf_sampling_so.so')) File "/home/whf/anaconda3/envs/tf_gpu/lib/python3.6/site-packages/tensorflow/python/framework/load_library.py", line 58, in load_op_library lib_handle = py_tf.TF_LoadLibrary(library_filename, status) File "/home/whf/anaconda3/envs/tf_gpu/lib/python3.6/site-packages/tensorflow/python/framework/errors_impl.py", line 516, in exit c_api.TF_GetCode(self.status.status)) tensorflow.python.framework.errors_impl.NotFoundError: /home/whf/ZYM/PointCNN/sampling/tf_sampling_so.so: undefined symbol: _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv

    My environment as follows: gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4) tensorflow 1.6.0

    opened by YamingZ 11
  • Visualization of the segmentation results

    Visualization of the segmentation results

    Hello, thanks for sharing your great work with us here! I just downloaded the ScanNet dataset for semantic segmentation task, and I have finished the training and testing. When I wanted to visualize the results, I found that every ply file is just a tiny part of the whole scene. How can I visualize the result of the whole scene? I have no idea which files belong to the same scene. Does every h5 file contain several different scenes?

    opened by RicheyHuang 10
  • Memory Error

    Memory Error

    When I test the semantic3d data set, my computer has 64GB of memory. Memory Error appears when I prepare data and train. How much memory does it need?

    opened by ruanhailiang 9
  • tf_sampling_so.so error while training

    tf_sampling_so.so error while training

    Hi, I followed the steps in the Semantic3d dataset and used a custom dataset to train. I was able to create .h5 and all steps were successful. But when I run, ./train_val_semantic3d.sh -g 0 -x semantic3d_x4_2048_fps :
    inside models/seg -> the log file shows the following error: tf_sampling_so.so: cannot open shared object file: No such file or directory

    I checked the existing issues (https://github.com/charlesq34/pointnet2/issues/48) and made changes to Pointcnn/sampling/tf_sampling_compiler.sh but still did not work.

    I am using the TensorFlow version = 1.15, python 3.6, conda environment(Used pip command to install tf as mentioned in one of the issues. Still didn't work) Any help on how to resolve this issue? Regards Niranjan

    opened by NiranjanRavi1993 8
  • Undefined name 'tnet'

    Undefined name 'tnet'

    https://github.com/yangyanli/PointCNN/blob/master/pointnetpp_cls/utils/pointnet_util.py#L49

    flake8 testing of https://github.com/yangyanli/PointCNN

    $ flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics

    ./pointnetpp_cls/utils/pointnet_util.py:49:23: F821 undefined name 'tnet'
            grouped_xyz = tnet(grouped_xyz, tnet_spec)
                          ^
    1     F821 undefined name 'tnet'
    
    opened by cclauss 8
  • Classification on large *.ply data

    Classification on large *.ply data

    Hi, Thank you for sharing your work. My 3D face dataset contains large ply files. For example:

    ply
    format ascii 1.0
    element vertex 166368
    property float x
    property float y
    property float z
    element face 156797
    property list uchar int vertex_indices
    end_header
    -50.8063 31.0753 83.1526
    ...
    3 37583 37611 37610 
    ...
    

    And i should do the classification basing on these ply files but I have no idea how to implement it using PointCNN. What should i do?

    Thank you. tsly

    opened by tsly123 7
  • ScanNet classification, can't obtain 9,305/2,606 training/testing instances

    ScanNet classification, can't obtain 9,305/2,606 training/testing instances

    How did you fix the benchmark files to reach 9,305/2,606 instances, as you mentioned in issue #29 ?

    Can you update the benchmark files with the fixed files (maybe scannet-labels.combined.tsv and classes_ObjClassification-ShapeNetCore55.txt in ./data_conversions)? Thanks.

    opened by Yochengliu 7
  • ImportError: No module named sampling in Python 2.7

    ImportError: No module named sampling in Python 2.7

    Hi, I am able to compile the sampling file but can't use it. I am using python 2.7 and Tensorflow 1.7.0 When I want to import sampling in pointcnn.py, I got the following error :

      File "/home/yjm/Project/PointCNN11_24_new/code/pointcnn.py", line 69, in __init__
        from sampling import tf_sampling
    ImportError: No module named sampling
    

    However, when I compile sampling, I got no error. My tf_sampling_compile.sh file is :

    #/bin/bash
    PYTHON=python
    nvcc=/usr/local/cuda/bin/nvcc
    cudalib=/usr/local/cuda/lib64
    tensorflow=/home/yjm/anaconda3/envs/py27_1/lib/python2.7/site-packages/tensorflow/include
    TF_INC=$($PYTHON -c 'import tensorflow as tf;print(tf.sysconfig.get_include())')
    TF_LIB=$($PYTHON -c 'import tensorflow as tf;print(tf.sysconfig.get_lib())')
    
    $nvcc tf_sampling_g.cu -o tf_sampling_g.cu.o -c -O2 -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC
    g++ -std=c++11 tf_sampling.cpp tf_sampling_g.cu.o -o tf_sampling_so.so -shared -fPIC -I $tensorflow -I$TF_INC/external/nsync/public -L$TF_LIB -ltensorflow_framework -I /usr/local/cuda/include -lcudart -L /usr/local/cuda/lib64/ -O2
    

    I would be very grateful if you give me some suggestions ! Thanks!

    opened by jialancong 7
  • Problem on Reproducing Scannet Segmentation Results

    Problem on Reproducing Scannet Segmentation Results

    Hi,

    I tried to reproduce the results for Scannet Dataset on Segmentation Task but I cannot reproduce the mentioned results. The accuracy just around 77.76% (Validation) and ~85% for training data. I used the "pointnet++ preprocessed data" with provided scannet-seg hyper-parameters.

    Can you give me a clue what I should do to reproduce the result? And also how long do you train the model to achieve the published result?

    opened by hasanari 7
  • could not run the code

    could not run the code

    Hi, I could not run the code using the commands you give.

    (pointcnn) [email protected]:/mnt/Ubuntu/PointCNN-master/pointcnn_cls$ ./train_val_modelnet.sh -g 0 -x modelnet_x3_l4 Train/Val with setting modelnet_x3_l4 on GPU 0! (pointcnn) [email protected]:/mnt/Ubuntu/PointCNN-master/pointcnn_cls$

    It echos "Train/Val with setting modelnet_x3_l4 on GPU 0!" but exits immediately. What's the problem?

    opened by rruixxu 6
  • ScannetV2 for point cloud Classification get too high performace

    ScannetV2 for point cloud Classification get too high performace

    Thanks for your work! When i use your code extract scannet dataset for 3D classification , I get 12060 examples for training and 3416 for testing. It seems that scannetv2 is different from scannetv1. However , when i train it with pointnet and pointnet++, I respectively get the best performance 89.34 and 90.35! It is higher than your paper's result. Do anyone have the same founding with me? Is it normal phenomenon due to the Scannetv2 is easy to classify than Scannetv1(i guess that in 2018 , Scannet just release V1) or i make some mistakes which cause my dataset wrong?

    Thanks for anyone's answer. Best regards. ╰(°▽°)╯

    opened by jumptiger66 0
  • PointCNN Part segmentation model details

    PointCNN Part segmentation model details

    Dear author,

    I am interested in finding out the model size for PointCNN part segmentation, but I could only find the information for PointCNN classification network. Could you please report what is GMac for PointCNN part segmentation network? Thank you very much in advance.

    opened by edshkim98 0
  • Regarding custom dataset

    Regarding custom dataset

    Hi. Thank you for the repository.

    I wanted to ask if it is possible to get any guidance regarding the custom dataset. I have my own dataset i.e. X, Y, Z points with labels (4 columns in total) in txt files. I wanted to know how I can create a data loader for custom data and train the network.

    opened by pytholic 7
  • How to run PointCNN

    How to run PointCNN

    Hi everyone,

    I am pretty new in Neural Networks, can anyone share with me which parameters do you use? In which formats are (number, dictionary, array)? How do you run the class PointCNN?

    Thank you in advance!

    opened by elinausmanova 0
  • Creating Confusion matrix from predicted results

    Creating Confusion matrix from predicted results

    I am trying to create (and plot) a confusion matrix for a multilabel dataset that has the predicted results structured in the same way the S3DIS results. I'm having trouble with creating the confusion matrix from the results and I am wondering if anyone has figured out how to do this. Any help would be greatly appreciated!

    opened by jobberz77 0
Releases(v1.0)
This repository is for EMNLP 2021 paper: It is Not as Good as You Think! Evaluating Simultaneous Machine Translation on Interpretation Data

InterpretationData This repository is for our EMNLP 2021 paper: It is Not as Good as You Think! Evaluating Simultaneous Machine Translation on Interpr

4 Apr 21, 2022
VISNOTATE: An Opensource tool for Gaze-based Annotation of WSI Data

VISNOTATE: An Opensource tool for Gaze-based Annotation of WSI Data Introduction Requirements Installation and Setup Supported Hardware and Software R

SigmaLab 1 Jun 14, 2022
Learning Off-Policy with Online Planning, CoRL 2021

LOOP: Learning Off-Policy with Online Planning Accepted in Conference of Robot Learning (CoRL) 2021. Harshit Sikchi, Wenxuan Zhou, David Held Paper In

Harshit Sikchi 24 Nov 22, 2022
Python codes for Lite Audio-Visual Speech Enhancement.

Lite Audio-Visual Speech Enhancement (Interspeech 2020) Introduction This is the PyTorch implementation of Lite Audio-Visual Speech Enhancement (LAVSE

Shang-Yi Chuang 85 Dec 01, 2022
Depression Asisstant GDSC Challenge Solution

Depression Asisstant can help you give solution. Please using Python version 3.9.5 for contribute.

Ananda Rauf 1 Jan 30, 2022
Implementation of "Large Steps in Inverse Rendering of Geometry"

Large Steps in Inverse Rendering of Geometry ACM Transactions on Graphics (Proceedings of SIGGRAPH Asia), December 2021. Baptiste Nicolet · Alec Jacob

RGL: Realistic Graphics Lab 274 Jan 06, 2023
Pre-trained Deep Learning models and demos (high quality and extremely fast)

OpenVINO™ Toolkit - Open Model Zoo repository This repository includes optimized deep learning models and a set of demos to expedite development of hi

OpenVINO Toolkit 3.4k Dec 31, 2022
BabelCalib: A Universal Approach to Calibrating Central Cameras. In ICCV (2021)

BabelCalib: A Universal Approach to Calibrating Central Cameras This repository contains the MATLAB implementation of the BabelCalib calibration frame

Yaroslava Lochman 55 Dec 30, 2022
Repository of our paper 'Refer-it-in-RGBD' in CVPR 2021

Refer-it-in-RGBD This is the repository of our paper 'Refer-it-in-RGBD: A Bottom-up Approach for 3D Visual Grounding in RGBD Images' in CVPR 2021 Pape

Haolin Liu 34 Nov 07, 2022
Repository for the electrical and ICT benchmark model developed in the ERIGrid 2.0 project.

Benchmark Model Electrical and ICT System This repository contains the documentation, code, and models for the electrical and ICT benchmark model deve

ERIGrid 2.0 1 Nov 29, 2021
PyTorch implementation of "Efficient Neural Architecture Search via Parameters Sharing"

Efficient Neural Architecture Search (ENAS) in PyTorch PyTorch implementation of Efficient Neural Architecture Search via Parameters Sharing. ENAS red

Taehoon Kim 2.6k Dec 31, 2022
An Unsupervised Detection Framework for Chinese Jargons in the Darknet

An Unsupervised Detection Framework for Chinese Jargons in the Darknet This repo is the Python 3 implementation of 《An Unsupervised Detection Framewor

7 Nov 08, 2022
Pytorch Lightning Implementation of SC-Depth Methods.

SC_Depth_pl: This is a pytorch lightning implementation of SC-Depth (V1, V2) for self-supervised learning of monocular depth from video. In the V1 (IJ

JiaWang Bian 216 Dec 30, 2022
GNNAdvisor: An Efficient Runtime System for GNN Acceleration on GPUs

GNNAdvisor: An Efficient Runtime System for GNN Acceleration on GPUs [Paper, Slides, Video Talk] at USENIX OSDI'21 @inproceedings{GNNAdvisor, title=

YUKE WANG 47 Jan 03, 2023
Code for testing various M1 Chip benchmarks with TensorFlow.

M1, M1 Pro, M1 Max Machine Learning Speed Test Comparison This repo contains some sample code to benchmark the new M1 MacBooks (M1 Pro and M1 Max) aga

Daniel Bourke 348 Jan 04, 2023
An introduction to satellite image analysis using Python + OpenCV and JavaScript + Google Earth Engine

A Gentle Introduction to Satellite Image Processing Welcome to this introductory course on Satellite Image Analysis! Satellite imagery has become a pr

Edward Oughton 32 Jan 03, 2023
Official implementation for "Symbolic Learning to Optimize: Towards Interpretability and Scalability"

Symbolic Learning to Optimize This is the official implementation for ICLR-2022 paper "Symbolic Learning to Optimize: Towards Interpretability and Sca

VITA 8 Dec 19, 2022
The repository includes the code for training cell counting applications. (Keras + Tensorflow)

cell_counting_v2 The repository includes the code for training cell counting applications. (Keras + Tensorflow) Dataset can be downloaded here : http:

Weidi 113 Oct 06, 2022
This repository contains the implementation of the paper Contrastive Instance Association for 4D Panoptic Segmentation using Sequences of 3D LiDAR Scans

Contrastive Instance Association for 4D Panoptic Segmentation using Sequences of 3D LiDAR Scans This repository contains the implementation of the pap

Photogrammetry & Robotics Bonn 40 Dec 01, 2022
A tight inclusion function for continuous collision detection

Tight-Inclusion Continuous Collision Detection A conservative Continuous Collision Detection (CCD) method with support for minimum separation. You can

Continuous Collision Detection 89 Jan 01, 2023