[CVPR 2021] Few-shot 3D Point Cloud Semantic Segmentation

Overview

Few-shot 3D Point Cloud Semantic Segmentation

Created by Na Zhao from National University of Singapore

teaser

Introduction

This repository contains the PyTorch implementation for our CVPR 2021 Paper "Few-shot 3D Point Cloud Semantic Segmentation" by Na Zhao, Tat-Seng Chua, Gim Hee Lee.

Many existing approaches for point cloud semantic segmentation are fully supervised. These fully supervised approaches heavily rely on a large amount of labeled training data that is difficult to obtain and can not generalize to unseen classes after training. To mitigate these limitations, we propose a novel attention-aware multi-prototype transductive few-shot point cloud semantic segmentation method to segment new classes given a few labeled examples. Specifically, each class is represented by multiple prototypes to model the complex data distribution of 3D point clouds. Subsequently, we employ a transductive label propagation method to exploit the affinities between labeled multi-prototypes and unlabeled query points, and among the unlabeled query points. Furthermore, we design an attention-aware multi-level feature learning network to learn the discriminative features that capture the semantic correlations and geometric dependencies between points. Our proposed method shows significant and consistent improvements compared to the baselines in different few-shot point cloud segmentation settings (i.e. 2/3-way 1/5-shot) on two benchmark datasets.

Installation

  • Install python --This repo is tested with python 3.6.8.
  • Install pytorch with CUDA -- This repo is tested with torch 1.4.0, CUDA 10.1. It may work with newer versions, but that is not gauranteed.
  • Install faiss with cpu version
  • Install 'torch-cluster' with the corrreponding torch and cuda version
     pip install torch-cluster==latest+cu101 -f https://pytorch-geometric.com/whl/torch-1.5.0.html
    
  • Install dependencies
    pip install tensorboard h5py transforms3d
    

Usage

Data preparation

S3DIS

  1. Download S3DIS Dataset Version 1.2.

  2. Re-organize raw data into npy files by running

    cd ./preprocess
    python collect_s3dis_data.py --data_path $path_to_S3DIS_raw_data
    

    The generated numpy files are stored in ./datasets/S3DIS/scenes/ by default.

  3. To split rooms into blocks, run

    python ./preprocess/room2blocks.py --data_path ./datasets/S3DIS/scenes/

    One folder named blocks_bs1_s1 will be generated under ./datasets/S3DIS/ by default.

ScanNet

  1. Download ScanNet V2.

  2. Re-organize raw data into npy files by running

    cd ./preprocess
    python collect_scannet_data.py --data_path $path_to_ScanNet_raw_data
    

    The generated numpy files are stored in ./datasets/ScanNet/scenes/ by default.

  3. To split rooms into blocks, run

    python ./preprocess/room2blocks.py --data_path ./datasets/ScanNet/scenes/ --dataset scannet

    One folder named blocks_bs1_s1 will be generated under ./datasets/ScanNet/ by default.

Running

Training

First, pretrain the segmentor which includes feature extractor module on the available training set:

cd scripts
bash pretrain_segmentor.sh

Second, train our method:

bash train_attMPTI.sh

Evaluation

bash eval_attMPTI.sh

Note that the above scripts are used for 2-way 1-shot on S3DIS (S^0). You can modified the corresponding hyperparameters to conduct experiments on other settings.

Citation

Please cite our paper if it is helpful to your research:

@inproceedings{zhao2021few,
  title={Few-shot 3D Point Cloud Semantic Segmentation},
  author={Zhao, Na and Chua, Tat-Seng and Lee, Gim Hee},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  year={2021}
}

Acknowledgement

We thank DGCNN (pytorch) for sharing their source code.

Comments
  • No class2scans.pkl

    No class2scans.pkl

    Hi, thanks for your excellent work!

    I have tried to run your code but face some issues. After I processed the data successfully as introduction, I run :

    bash scripts/pretrain_segmentor.sh

    But ir reports:

    {0: 'ceiling', 1: 'floor', 2: 'wall', 3: 'beam', 4: 'column', 5: 'window', 6: 'door', 7: 'table', 8: 'chair', 9: 'sofa', 10: 'bookcase', 11: 'board', 12: 'clutter'} ==== class to scans mapping is done ==== class_id: 0 | min_ratio: 0.05 | min_pts: 100 | class_name: ceiling | num of scans: 0 class_id: 1 | min_ratio: 0.05 | min_pts: 100 | class_name: floor | num of scans: 0 class_id: 2 | min_ratio: 0.05 | min_pts: 100 | class_name: wall | num of scans: 0 class_id: 3 | min_ratio: 0.05 | min_pts: 100 | class_name: beam | num of scans: 0 class_id: 4 | min_ratio: 0.05 | min_pts: 100 | class_name: column | num of scans: 0 class_id: 5 | min_ratio: 0.05 | min_pts: 100 | class_name: window | num of scans: 0 class_id: 6 | min_ratio: 0.05 | min_pts: 100 | class_name: door | num of scans: 0 class_id: 7 | min_ratio: 0.05 | min_pts: 100 | class_name: table | num of scans: 0 class_id: 8 | min_ratio: 0.05 | min_pts: 100 | class_name: chair | num of scans: 0 class_id: 9 | min_ratio: 0.05 | min_pts: 100 | class_name: sofa | num of scans: 0 class_id: 10 | min_ratio: 0.05 | min_pts: 100 | class_name: bookcase | num of scans: 0 class_id: 11 | min_ratio: 0.05 | min_pts: 100 | class_name: board | num of scans: 0 class_id: 12 | min_ratio: 0.05 | min_pts: 100 | class_name: clutter | num of scans: 0 Traceback (most recent call last): File "main.py", line 116, in pretrain(args) File "/media/work/li/new/Few-shot/PointSeg/attMPTI/runs/pre_train.py", line 98, in pretrain DATASET = S3DISDataset(args.cvfold, args.data_path) File "/media/work/li/new/Few-shot/PointSeg/attMPTI/dataloaders/s3dis.py", line 38, in init self.class2scans = self.get_class2scans() File "/media/work/li/new/Few-shot/PointSeg/attMPTI/dataloaders/s3dis.py", line 69, in get_class2scans with open(class2scans_file, 'wb') as f: FileNotFoundError: [Errno 2] No such file or directory: './datasets/S3DIS/blocks_bs1_s1/class2scans.pkl'

    I'm not sure where is wrong. I cannot find class2scans.pkl. Thanks for your help!

    opened by sj-li 8
  • gpu errors

    gpu errors

    I encountered a GPU problem during the training process on S3DIS dataset . How can I solve it? Thanks for your replying. usage: main.py [-h] [--phase {pretrain,finetune,prototrain,protoeval,mptitrain,mptieval}] [--dataset DATASET] [--cvfold CVFOLD] [--data_path DATA_PATH] [--pretrain_checkpoint_path PRETRAIN_CHECKPOINT_PATH] [--model_checkpoint_path MODEL_CHECKPOINT_PATH] [--save_path SAVE_PATH] [--eval_interval EVAL_INTERVAL] [--batch_size BATCH_SIZE] [--n_workers N_WORKERS] [--n_iters N_ITERS] [--lr LR] [--step_size STEP_SIZE] [--gamma GAMMA] [--pretrain_lr PRETRAIN_LR] [--pretrain_weight_decay PRETRAIN_WEIGHT_DECAY] [--pretrain_step_size PRETRAIN_STEP_SIZE] [--pretrain_gamma PRETRAIN_GAMMA] [--n_way N_WAY] [--k_shot K_SHOT] [--n_queries N_QUERIES] [--n_episode_test N_EPISODE_TEST] [--pc_npts PC_NPTS] [--pc_attribs PC_ATTRIBS] [--pc_augm] [--pc_augm_scale PC_AUGM_SCALE] [--pc_augm_rot PC_AUGM_ROT] [--pc_augm_mirror_prob PC_AUGM_MIRROR_PROB] [--pc_augm_jitter PC_AUGM_JITTER] [--dgcnn_k DGCNN_K] [--edgeconv_widths EDGECONV_WIDTHS] [--dgcnn_mlp_widths DGCNN_MLP_WIDTHS] [--base_widths BASE_WIDTHS] [--output_dim OUTPUT_DIM] [--use_attention] [--dist_method DIST_METHOD] [--n_subprototypes N_SUBPROTOTYPES] [--k_connect K_CONNECT] [--sigma SIGMA] main.py: error: unrecognized arguments: --gpu_id 0 --similarity_function gaussian --output_widths [64]

    opened by Chengyuelan 5
  • Performance on ScanNet

    Performance on ScanNet

    Thanks for your opening source the nice project. I run attMPTI on the two dataset using the hyper-parameters according to the paper. I can get the reported performance of the paper on S3DIS but fail on ScanNet. Concretly, in 2-way-1shot task on both split-0 and split-1 of ScanNet , i set n_prototypes=100, knn_neighbor=200, Gausian_sigma=5. The meanIoU i get are 39.5% and 37.6% on split-0 and split-1 respectively, which are about 3% dropped from the paper. I have also tried Gausian_sigma=1 but the result changes slightly. Do you have these problems when you conducting the experiments on ScanNet? Or do you know how i can fix these problems?

    opened by lailvlong 4
  • Data preparation about S3DIS step 3

    Data preparation about S3DIS step 3

    Hello, I think I need some help with data preprocessing.

    I have completed the first two steps of preparation for S3DIS. The generated numpy files are stored in ./datasets/S3DIS/scenes/ by default successfully.

    I run 'python ./preprocess/room2blocks.py --data_path=./datasets/S3DIS/scenes/' under the attMPTI folder. It show : 0 scenes to be split... Total samples: 0

    I run 'python room2blocks.py --data_path=../datasets/S3DIS/scenes/' under the preprocess folder. It show: 0 scenes to be split... Total samples: 0 I don't understand why this problem occurs, when the npy file has already been generated into the default folder.

    opened by 964918993 4
  • eval_attMPTI.sh

    eval_attMPTI.sh

    when I was training the 'eval_attMPTI.sh' file, something went wrong:I would be very grateful for your solution.Thanks! (attMPTI17) excellence@cyy:~/attMPTI-main$ bash /home/attMPTI-main/scripts/eval_attMPTI.sh /home/attMPTI-main/scripts/eval_attMPTI.sh: line 14: SURE: command not found Traceback (most recent call last): File "main.py", line 112, in eval(args) File "/home/attMPTI-main/runs/eval.py", line 102, in eval logger = init_logger(args.log_dir, args) File "/home/attMPTI-main/utils/logger.py", line 34, in init_logger mkdir(log_dir) File "/home/attMPTI-main/utils/logger.py", line 22, in mkdir os.makedirs(path) File "/home/anaconda3/envs/attMPTI17/lib/python3.8/os.py", line 223, in makedirs mkdir(name, mode) FileNotFoundError: [Errno 2] No such file or directory: ''

    opened by Chengyuelan 2
  • from torch-cluster import fps报错

    from torch-cluster import fps报错

    from torch-cluster import fps报错,其他模块均按照readme要求安装

    pip install torch-cluster==latest+cu101 -f https://pytorch-geometric.com/whl/torch-1.5.0.html安装失败,无法找到对应包,所以直接使用的对应版本链接whel安装 pip install https://data.pyg.org/whl/torch-1.5.0/torch_cluster-latest%2Bcu101-cp36-cp36m-linux_x86_64.whl

    但是运行时报错找不到模块 (torch1.4.0) ubuntu@ubuntu-System-Product-Name:/data/NZH/attMPTI-main$ bash scripts/train_attMPTI.sh Traceback (most recent call last): File "main.py", line 100, in from runs.mpti_train import train File "/data/NZH/attMPTI-main/runs/mpti_train.py", line 10, in from runs.eval import test_few_shot File "/data/NZH/attMPTI-main/runs/eval.py", line 14, in from models.mpti_learner import MPTILearner File "/data/NZH/attMPTI-main/models/mpti_learner.py", line 10, in from models.mpti import MultiPrototypeTransductiveInference File "/data/NZH/attMPTI-main/models/mpti.py", line 11, in from torch_cluster import fps File "/home/ubuntu/anaconda3/envs/torch1.4.0/lib/python3.6/site-packages/torch_cluster/init.py", line 13, in library, [osp.dirname(file)]).origin) File "/home/ubuntu/anaconda3/envs/torch1.4.0/lib/python3.6/site-packages/torch/_ops.py", line 106, in load_library ctypes.CDLL(path) File "/home/ubuntu/anaconda3/envs/torch1.4.0/lib/python3.6/ctypes/init.py", line 348, in init self._handle = _dlopen(self._name, mode) OSError: libtorch_cpu.so: cannot open shared object file: No such file or directory

    opened by AaronNZH 1
  • eval.py error for S3DIS-S0-N2-K5

    eval.py error for S3DIS-S0-N2-K5

    I am getting the following error while running train_MPTI.sh for s=0, n=2, and k=5:

    Traceback (most recent call last):
      File "main.py", line 113, in <module>
        train(args)
      File "/home2/siddharth/attMPTI/runs/mpti_train.py", line 72, in train
        valid_loss, mean_IoU = test_few_shot(VALID_LOADER, MPTI, logger, VALID_CLASSES)
      File "/home2/siddharth/attMPTI/runs/eval.py", line 101, in test_few_shot
        mean_IoU = evaluate_metric(logger, predicted_label_total, gt_label_total, label2class_total, test_classes)
      File "/home2/siddharth/attMPTI/runs/eval.py", line 66, in evaluate_metric
        iou = true_positive_classes[c] / float(gt_classes[c] + positive_classes[c] - true_positive_classes[c])
    ZeroDivisionError: float division by zero
    

    the validation classes are: [ 3 11 10 0 8 4] validation data length: 142 It seems that for classes 0, 8 and 4 the counter in true_positive_classes, gt_classes and positive_classes are 0. As this error can be avoided by using a condition, I wanted to make sure that there is no fault in the validation dataset, as there is not a single sample from class 0, 8, and 4. Is this normal, or should I regenerate the validation dataset?

    opened by siddharthKatageri 1
  • model.train() mode not specified in pre_train.py

    model.train() mode not specified in pre_train.py

    Hi, In the training loop of pre_train.py, the model is not set to train mode (model.train()). Does this affect the training process or the mode is automatically set to .train() after the evaluation is done by torch?

    opened by siddharthKatageri 1
  • The problem of preprocessing the ScanNet dataset

    The problem of preprocessing the ScanNet dataset

    When I run "python collect_scannet_data.py --data_path $path_to_ScanNet_raw_data", I found that the data obtained after collect_scannet_data did not contain the data with label 17. So when I run "python ./preprocess/room2blocks.py --data_path ./datasets/ScanNet/scenes/ --dataset scannet" later, number of scans with class id 17 is 0. Therefore, during the training of the model, whenever the scene containing class number 17 is sampled, the errors will appear (Because scene contains label 17 is None). I tried to reprocess the data several times, but it didn't work. I think there are some bugs in the code. I hope you can solve the problems.

    opened by ruler9527 1
  • About eval script

    About eval script

    Sorry to bother you.

    I copy ‘main.py’ to the 'scripts' folder and run 'bash scripts/eval_attMPTI.sh'. Error message is 'FileNotFoundError', but file name is not given:

    /private/attMPTI-main# bash scripts/eval_attMPTI.sh scripts/eval_attMPTI.sh: line 15: SURE: command not found Traceback (most recent call last): File "main.py", line 112, in eval(args) File "/private/attMPTI-main/runs/eval.py", line 102, in eval logger = init_logger(args.log_dir, args) File "/private/attMPTI-main/utils/logger.py", line 34, in init_logger mkdir(log_dir) File "/private/attMPTI-main/utils/logger.py", line 22, in mkdir os.makedirs(path) File "/root/anaconda3/envs/dgcnn/lib/python3.6/os.py", line 220, in makedirs mkdir(name, mode) FileNotFoundError: [Errno 2] No such file or directory: ''

    Can you give me some help? Thanks!

    opened by 964918993 0
  • About class2scans.pkl

    About class2scans.pkl

    https://github.com/Na-Z/attMPTI/issues/7#issue-933704367

    Sorry to bother u. I have the same problem when I use 'bash scripts/pretrain_segmentor.sh.' under attMPTI-main. Can you help me see what's wrong?

    It shows: /root/anaconda3/envs/dgcnn/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint8 = np.dtype([("qint8", np.int8, 1)]) /root/anaconda3/envs/dgcnn/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint8 = np.dtype([("quint8", np.uint8, 1)]) /root/anaconda3/envs/dgcnn/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint16 = np.dtype([("qint16", np.int16, 1)]) /root/anaconda3/envs/dgcnn/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint16 = np.dtype([("quint16", np.uint16, 1)]) /root/anaconda3/envs/dgcnn/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint32 = np.dtype([("qint32", np.int32, 1)]) /root/anaconda3/envs/dgcnn/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. np_resource = np.dtype([("resource", np.ubyte, 1)]) ------------ Options ------------- base_widths: [128, 64] batch_size: 16 cvfold: 0 data_path: ./datasets/S3DIS/blocks_bs1_s1 dataset: s3dis dgcnn_k: 20 dgcnn_mlp_widths: [512, 256] dist_method: euclidean edgeconv_widths: [[64, 64], [64, 64], [64, 64]] eval_interval: 3 gamma: 0.5 k_connect: 200 k_shot: 1 log_dir: ./log_s3dis/log_pretrain_s3dis_S0 lr: 0.001 model_checkpoint_path: None n_episode_test: 100 n_iters: 100 n_queries: 1 n_subprototypes: 100 n_way: 2 n_workers: 16 output_dim: 64 pc_attribs: xyzrgbXYZ pc_augm: True pc_augm_jitter: 1 pc_augm_mirror_prob: 0 pc_augm_rot: 1 pc_augm_scale: 0 pc_in_dim: 9 pc_npts: 2048 phase: pretrain pretrain_checkpoint_path: None pretrain_gamma: 0.5 pretrain_lr: 0.001 pretrain_step_size: 50 pretrain_weight_decay: 0.0001 save_path: ./log_s3dis/ sigma: 1.0 step_size: 5000 use_attention: False -------------- End ----------------

    {0: 'ceiling', 1: 'floor', 2: 'wall', 3: 'beam', 4: 'column', 5: 'window', 6: 'door', 7: 'table', 8: 'chair', 9: 'sofa', 10: 'bookcase', 11: 'board', 12: 'clutter'} ==== class to scans mapping is done ==== class_id: 0 | min_ratio: 0.05 | min_pts: 100 | class_name: ceiling | num of scans: 0 class_id: 1 | min_ratio: 0.05 | min_pts: 100 | class_name: floor | num of scans: 0 class_id: 2 | min_ratio: 0.05 | min_pts: 100 | class_name: wall | num of scans: 0 class_id: 3 | min_ratio: 0.05 | min_pts: 100 | class_name: beam | num of scans: 0 class_id: 4 | min_ratio: 0.05 | min_pts: 100 | class_name: column | num of scans: 0 class_id: 5 | min_ratio: 0.05 | min_pts: 100 | class_name: window | num of scans: 0 class_id: 6 | min_ratio: 0.05 | min_pts: 100 | class_name: door | num of scans: 0 class_id: 7 | min_ratio: 0.05 | min_pts: 100 | class_name: table | num of scans: 0 class_id: 8 | min_ratio: 0.05 | min_pts: 100 | class_name: chair | num of scans: 0 class_id: 9 | min_ratio: 0.05 | min_pts: 100 | class_name: sofa | num of scans: 0 class_id: 10 | min_ratio: 0.05 | min_pts: 100 | class_name: bookcase | num of scans: 0 class_id: 11 | min_ratio: 0.05 | min_pts: 100 | class_name: board | num of scans: 0 class_id: 12 | min_ratio: 0.05 | min_pts: 100 | class_name: clutter | num of scans: 0 Traceback (most recent call last): File "main.py", line 116, in pretrain(args) File "/private/attMPTI-main/runs/pre_train.py", line 98, in pretrain DATASET = S3DISDataset(args.cvfold, args.data_path) File "/private/attMPTI-main/dataloaders/s3dis.py", line 38, in init self.class2scans = self.get_class2scans() File "/private/attMPTI-main/dataloaders/s3dis.py", line 69, in get_class2scans with open(class2scans_file, 'wb') as f: FileNotFoundError: [Errno 2] No such file or directory: './datasets/S3DIS/blocks_bs1_s1/class2scans.pkl'

    opened by 964918993 0
  • Update mpti.py. There are some wrong usage about F.pairwise_distance

    Update mpti.py. There are some wrong usage about F.pairwise_distance

    There are some wrong usage about F.pairwise_distance, which lead to error data shape, and then generate nan data. Finaly, the nan data will make faiss.IndexFlatL2 produce -1 in array I, which means array out of bound error in torch.gather

    opened by AaronNZH 0
  • The ScanNet dataset

    The ScanNet dataset

    Hi, thanks for sharing the code! I am new to 3d point could segmentation. The ScanNet dataset seems to be very large(around 1.2T). Did you download the whole dataset or just download some of the datasets? Please help me! Looking forward to your answer!

    opened by caoql98 0
  • Adapt to part-level segmentation

    Adapt to part-level segmentation

    Hi, Thanks for the great work. If we want to adapt the method to object part segmentation (e.g., ShapeNet and PartNet), could you please help to point out which code we need to modify?

    opened by Colin97 0
  • Training Time

    Training Time

    @Na-Z Hi, thanks for sharing the code!

    I am new to 3d point could segmentation. Is this task GPU-friendly under the few-shot setting? How long did it take to run the experiment on each dataset?

    Looking forward to your reply. Thanks again~

    Best,

    opened by chunbolang 2
  • Question about pointcloud sampler

    Question about pointcloud sampler

    The code line shows that the point clouds sampled for the query set are decided by the groundtruth labels when testing. I don‘t think this is a reasonable experimental design.

    Furthermore, why the point cloud in the query set must contain the target class when testing rather than evaluation? Thanks, @Na-Z

    opened by DCNSW 1
  • room2blocks.py giving inconsistent number of blocks compared to paper.

    room2blocks.py giving inconsistent number of blocks compared to paper.

    Hi, I did the preprocessing step where the rooms are divided into blocks using the provided room2blocks.py. I am getting a total of 7521 blocks, whereas in the paper it has been mentioned that 7547 number of blocks are generated. Am I supposed to change any parameter in the code?

    opened by siddharthKatageri 2
Owner
Ph.D. candidate in CS
null
Semantic Segmentation for Real Point Cloud Scenes via Bilateral Augmentation and Adaptive Fusion (CVPR 2021)

Semantic Segmentation for Real Point Cloud Scenes via Bilateral Augmentation and Adaptive Fusion (CVPR 2021) This repository is for BAAF-Net introduce

null 90 Dec 29, 2022
Style-based Point Generator with Adversarial Rendering for Point Cloud Completion (CVPR 2021)

Style-based Point Generator with Adversarial Rendering for Point Cloud Completion (CVPR 2021) An efficient PyTorch library for Point Cloud Completion.

Microsoft 119 Jan 2, 2023
Adaptive Prototype Learning and Allocation for Few-Shot Segmentation (CVPR 2021)

ASGNet The code is for the paper "Adaptive Prototype Learning and Allocation for Few-Shot Segmentation" (accepted to CVPR 2021) [arxiv] Overview data/

Gen Li 91 Dec 23, 2022
Code for 'Self-Guided and Cross-Guided Learning for Few-shot segmentation. (CVPR' 2021)'

SCL Introduction Code for 'Self-Guided and Cross-Guided Learning for Few-shot segmentation. (CVPR' 2021)' We evaluated our approach using two baseline

null 34 Oct 8, 2022
Public repository of the 3DV 2021 paper "Generative Zero-Shot Learning for Semantic Segmentation of 3D Point Clouds"

Generative Zero-Shot Learning for Semantic Segmentation of 3D Point Clouds Björn Michele1), Alexandre Boulch1), Gilles Puy1), Maxime Bucher1) and Rena

valeo.ai 15 Dec 22, 2022
Official code for "Simpler is Better: Few-shot Semantic Segmentation with Classifier Weight Transformer. ICCV2021".

Simpler is Better: Few-shot Semantic Segmentation with Classifier Weight Transformer. ICCV2021. Introduction We proposed a novel model training paradi

Lucas 103 Dec 14, 2022
Perturbed Self-Distillation: Weakly Supervised Large-Scale Point Cloud Semantic Segmentation (ICCV2021)

Perturbed Self-Distillation: Weakly Supervised Large-Scale Point Cloud Semantic Segmentation (ICCV2021) This is the implementation of PSD (ICCV 2021),

null 12 Dec 12, 2022
[ICCV 2021 Oral] SnowflakeNet: Point Cloud Completion by Snowflake Point Deconvolution with Skip-Transformer

This repository contains the source code for the paper SnowflakeNet: Point Cloud Completion by Snowflake Point Deconvolution with Skip-Transformer (ICCV 2021 Oral). The project page is here.

AllenXiang 65 Dec 26, 2022
Stratified Transformer for 3D Point Cloud Segmentation (CVPR 2022)

Stratified Transformer for 3D Point Cloud Segmentation Xin Lai*, Jianhui Liu*, Li Jiang, Liwei Wang, Hengshuang Zhao, Shu Liu, Xiaojuan Qi, Jiaya Jia

DV Lab 195 Jan 1, 2023
Few-NERD: Not Only a Few-shot NER Dataset

Few-NERD: Not Only a Few-shot NER Dataset This is the source code of the ACL-IJCNLP 2021 paper: Few-NERD: A Few-shot Named Entity Recognition Dataset.

THUNLP 319 Dec 30, 2022
Code for T-Few from "Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learning"

T-Few This repository contains the official code for the paper: "Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learni

null 220 Dec 31, 2022
git《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》(CVPR 2021) GitHub: [fig8]

FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding (CVPR 2021) This repo contains the implementation of our state-of-the-art fewshot ob

null 233 Dec 29, 2022
The official implementation of the CVPR 2021 paper FAPIS: a Few-shot Anchor-free Part-based Instance Segmenter

FAPIS The official implementation of the CVPR 2021 paper FAPIS: a Few-shot Anchor-free Part-based Instance Segmenter Introduction This repo is primari

Khoi Nguyen 8 Dec 11, 2022
Code for "PV-RAFT: Point-Voxel Correlation Fields for Scene Flow Estimation of Point Clouds", CVPR 2021

PV-RAFT This repository contains the PyTorch implementation for paper "PV-RAFT: Point-Voxel Correlation Fields for Scene Flow Estimation of Point Clou

Yi Wei 43 Dec 5, 2022
Official PyTorch Implementation of Hypercorrelation Squeeze for Few-Shot Segmentation, arXiv 2021

Hypercorrelation Squeeze for Few-Shot Segmentation This is the implementation of the paper "Hypercorrelation Squeeze for Few-Shot Segmentation" by Juh

Juhong Min 165 Dec 28, 2022
Implementation of the "PSTNet: Point Spatio-Temporal Convolution on Point Cloud Sequences" paper.

PSTNet: Point Spatio-Temporal Convolution on Point Cloud Sequences Introduction Point cloud sequences are irregular and unordered in the spatial dimen

Hehe Fan 63 Dec 9, 2022
Implementation of the "Point 4D Transformer Networks for Spatio-Temporal Modeling in Point Cloud Videos" paper.

Point 4D Transformer Networks for Spatio-Temporal Modeling in Point Cloud Videos Introduction Point cloud videos exhibit irregularities and lack of or

Hehe Fan 101 Dec 29, 2022
Synthetic LiDAR sequential point cloud dataset with point-wise annotations

SynLiDAR dataset: Learning From Synthetic LiDAR Sequential Point Cloud This is official repository of the SynLiDAR dataset. For technical details, ple

null 78 Dec 27, 2022
Learning Pixel-level Semantic Affinity with Image-level Supervision for Weakly Supervised Semantic Segmentation, CVPR 2018

Learning Pixel-level Semantic Affinity with Image-level Supervision This code is deprecated. Please see https://github.com/jiwoon-ahn/irn instead. Int

Jiwoon Ahn 337 Dec 15, 2022