[ICCV 2021 Oral] PoinTr: Diverse Point Cloud Completion with Geometry-Aware Transformers

Overview

PoinTr: Diverse Point Cloud Completion with Geometry-Aware Transformers

PWC

Created by Xumin Yu*, Yongming Rao*, Ziyi Wang, Zuyan Liu, Jiwen Lu, Jie Zhou

This repository contains PyTorch implementation for PoinTr: Diverse Point Cloud Completion with Geometry-Aware Transformers (ICCV 2021 Oral Presentation) [arXiv].

PoinTr is a transformer-based model for point cloud completion. By representing the point cloud as a set of unordered groups of points with position embeddings, we convert the point cloud to a sequence of point proxies and employ a transformer encoder-decoder architecture for generation. We also propose two more challenging benchmarks ShapeNet-55/34 with more diverse incomplete point clouds that can better reflect the real-world scenarios to promote future research.

intro

Pretrained Models

We provide pretrained PoinTr models:

dataset url
ShapeNet-55 [Tsinghua Cloud] / [Google Drive] / [BaiDuYun] (code:erdh)
ShapeNet-34 [Tsinghua Cloud] / [Google Drive] / [BaiDuYun] (code:atbb )
PCN [Tsinghua Cloud] / [Google Drive] / [BaiDuYun] (code:9g79)
KITTI coming soon

Usage

Requirements

  • PyTorch >= 1.7.0
  • python >= 3.7
  • CUDA >= 9.0
  • GCC >= 4.9
  • torchvision
  • timm
  • open3d
  • tensorboardX
pip install -r requirements.txt

Building Pytorch Extensions for Chamfer Distance, PointNet++ and kNN

NOTE: PyTorch >= 1.7 and GCC >= 4.9 are required.

# Chamfer Distance
bash install.sh
# PointNet++
pip install "git+git://github.com/erikwijmans/Pointnet2_PyTorch.git#egg=pointnet2_ops&subdirectory=pointnet2_ops_lib"
# GPU kNN
pip install --upgrade https://github.com/unlimblue/KNN_CUDA/releases/download/0.2/KNN_CUDA-0.2-py3-none-any.whl

Dataset

The details of our new ShapeNet-55/34 datasets and other existing datasets can be found in DATASET.md.

Evaluation

To evaluate a pre-trained PoinTr model on the Three Dataset with single GPU, run:

bash ./scripts/test.sh <GPU_IDS> --ckpts <path> --config <config> --exp_name <name> [--mode <easy/median/hard>]

Some examples:

Test the PoinTr pretrained model on the PCN benchmark:

bash ./scripts/test.sh 0 --ckpts ./pretrained/PoinTr_PCN.pth --config ./cfgs/PCN_models/PoinTr.yaml --exp_name example

Test the PoinTr pretrained model on ShapeNet55 benchmark (easy mode):

bash ./scripts/test.sh 0 --ckpts ./pretrained/PoinTr_ShapeNet55.pth --config ./cfgs/ShapeNet55_models/PoinTr.yaml --mode easy --exp_name example

Test the PoinTr pretrained model on the KITTI benchmark:

bash ./scripts/test.sh 0 --ckpts ./pretrained/PoinTr_KITTI.pth --config ./cfgs/KITTI_models/PoinTr.yaml --exp_name example

Training

To train a point cloud completion model from scratch, run:

# Use DistributedDataParallel (DDP)
bash ./scripts/dist_train.sh <NUM_GPU> <port> --config <config> --exp_name <name> [--resume] [--start_ckpts <path>] [--val_freq <int>]
# or just use DataParallel (DP)
bash ./scripts/train.sh <GPUIDS> --config <config> --exp_name <name> [--resume] [--start_ckpts <path>] [--val_freq <int>]

Some examples:

Train a PoinTr model on PCN benchmark with 2 gpus:

CUDA_VISIBLE_DEVICES=0,1 bash ./scripts/dist_train.sh 2 13232 --config ./cfgs/PCN_models/PoinTr.yaml --exp_name example

Resume a checkpoint:

CUDA_VISIBLE_DEVICES=0,1 bash ./scripts/dist_train.sh 2 13232 --config ./cfgs/PCN_models/PoinTr.yaml --exp_name example --resume

Finetune a PoinTr on PCNCars

CUDA_VISIBLE_DEVICES=0,1 bash ./scripts/dist_train.sh 2 13232 --config ./cfgs/KITTI_models/PoinTr.yaml --exp_name example --start_ckpts ./weight.pth

Train a PoinTr model with a single GPU:

bash ./scripts/train.sh 0 --config ./cfgs/KITTI_models/PoinTr.yaml --exp_name example

We also provide the Pytorch implementation of several baseline models including GRNet, PCN, TopNet and FoldingNet. For example, to train a GRNet model on ShapeNet-55, run:

CUDA_VISIBLE_DEVICES=0,1 bash ./scripts/dist_train.sh 2 13232 --config ./cfgs/ShapeNet55_models/GRNet.yaml --exp_name example

Completion Results on ShapeNet55 and KITTI-Cars

results

License

MIT License

Acknowledgements

Our code is inspired by GRNet and mmdetection3d.

Citation

If you find our work useful in your research, please consider citing:

@inproceedings{yu2021pointr,
  title={PoinTr: Diverse Point Cloud Completion with Geometry-Aware Transformers},
  author={Yu, Xumin, Rao, Yongming and Wang, Ziyi and Liu, Zuyan, and Lu, Jiwen and Zhou, Jie},
  booktitle={ICCV},
  year={2021}
}
Comments
  • AssertionError when idx.shape[1] == k

    AssertionError when idx.shape[1] == k

    Hello Xumin, I got this problem, any suggestions? bash ./scripts/train.sh 0
    --config ./cfgs/KITTI_models/PoinTr.yaml
    --exp_name example /content/pointr /content/pointr

    • GPUS=0
    • PY_ARGS='--config ./cfgs/KITTI_models/PoinTr.yaml --exp_name example'
    • CUDA_VISIBLE_DEVICES=0
    • python main.py --config ./cfgs/KITTI_models/PoinTr.yaml --exp_name example 2022-11-04 04:37:20,520 - PoinTr - INFO - Copy the Config file from ./cfgs/KITTI_models/PoinTr.yaml to ./experiments/PoinTr/KITTI_models/example/config.yaml 2022-11-04 04:37:20,520 - PoinTr - INFO - args.config : ./cfgs/KITTI_models/PoinTr.yaml 2022-11-04 04:37:20,520 - PoinTr - INFO - args.launcher : none 2022-11-04 04:37:20,520 - PoinTr - INFO - args.local_rank : 0 2022-11-04 04:37:20,520 - PoinTr - INFO - args.num_workers : 4 2022-11-04 04:37:20,520 - PoinTr - INFO - args.seed : 0 2022-11-04 04:37:20,521 - PoinTr - INFO - args.deterministic : False 2022-11-04 04:37:20,521 - PoinTr - INFO - args.sync_bn : False 2022-11-04 04:37:20,521 - PoinTr - INFO - args.exp_name : example 2022-11-04 04:37:20,521 - PoinTr - INFO - args.start_ckpts : None 2022-11-04 04:37:20,521 - PoinTr - INFO - args.ckpts : None 2022-11-04 04:37:20,521 - PoinTr - INFO - args.val_freq : 1 2022-11-04 04:37:20,521 - PoinTr - INFO - args.resume : False 2022-11-04 04:37:20,521 - PoinTr - INFO - args.test : False 2022-11-04 04:37:20,521 - PoinTr - INFO - args.mode : None 2022-11-04 04:37:20,521 - PoinTr - INFO - args.experiment_path : ./experiments/PoinTr/KITTI_models/example 2022-11-04 04:37:20,521 - PoinTr - INFO - args.tfboard_path : ./experiments/PoinTr/KITTI_models/TFBoard/example 2022-11-04 04:37:20,521 - PoinTr - INFO - args.log_name : PoinTr 2022-11-04 04:37:20,521 - PoinTr - INFO - args.use_gpu : True 2022-11-04 04:37:20,521 - PoinTr - INFO - args.distributed : False 2022-11-04 04:37:20,521 - PoinTr - INFO - config.optimizer = edict() 2022-11-04 04:37:20,521 - PoinTr - INFO - config.optimizer.type : AdamW 2022-11-04 04:37:20,521 - PoinTr - INFO - config.optimizer.kwargs = edict() 2022-11-04 04:37:20,521 - PoinTr - INFO - config.optimizer.kwargs.lr : 0.0001 2022-11-04 04:37:20,522 - PoinTr - INFO - config.optimizer.kwargs.weight_decay : 0.0005 2022-11-04 04:37:20,522 - PoinTr - INFO - config.scheduler = edict() 2022-11-04 04:37:20,522 - PoinTr - INFO - config.scheduler.type : LambdaLR 2022-11-04 04:37:20,522 - PoinTr - INFO - config.scheduler.kwargs = edict() 2022-11-04 04:37:20,522 - PoinTr - INFO - config.scheduler.kwargs.decay_step : 21 2022-11-04 04:37:20,522 - PoinTr - INFO - config.scheduler.kwargs.lr_decay : 0.9 2022-11-04 04:37:20,522 - PoinTr - INFO - config.scheduler.kwargs.lowest_decay : 0.02 2022-11-04 04:37:20,522 - PoinTr - INFO - config.bnmscheduler = edict() 2022-11-04 04:37:20,522 - PoinTr - INFO - config.bnmscheduler.type : Lambda 2022-11-04 04:37:20,522 - PoinTr - INFO - config.bnmscheduler.kwargs = edict() 2022-11-04 04:37:20,522 - PoinTr - INFO - config.bnmscheduler.kwargs.decay_step : 21 2022-11-04 04:37:20,522 - PoinTr - INFO - config.bnmscheduler.kwargs.bn_decay : 0.5 2022-11-04 04:37:20,522 - PoinTr - INFO - config.bnmscheduler.kwargs.bn_momentum : 0.9 2022-11-04 04:37:20,522 - PoinTr - INFO - config.bnmscheduler.kwargs.lowest_decay : 0.01 2022-11-04 04:37:20,522 - PoinTr - INFO - config.dataset = edict() 2022-11-04 04:37:20,522 - PoinTr - INFO - config.dataset.train = edict() 2022-11-04 04:37:20,522 - PoinTr - INFO - config.dataset.train.base = edict() 2022-11-04 04:37:20,522 - PoinTr - INFO - config.dataset.train.base.NAME : PCN 2022-11-04 04:37:20,522 - PoinTr - INFO - config.dataset.train.base.CATEGORY_FILE_PATH : data/PCN/PCN.json 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.train.base.N_POINTS : 16384 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.train.base.N_RENDERINGS : 8 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.train.base.PARTIAL_POINTS_PATH : data/PCN/%s/partial/%s/%s/%02d.pcd 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.train.base.COMPLETE_POINTS_PATH : data/PCN/%s/complete/%s/%s.pcd 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.train.base.CARS : True 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.train.others = edict() 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.train.others.subset : train 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.train.others.bs : 64 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.val = edict() 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.val.base = edict() 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.val.base.NAME : PCN 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.val.base.CATEGORY_FILE_PATH : data/PCN/PCN.json 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.val.base.N_POINTS : 16384 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.val.base.N_RENDERINGS : 8 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.val.base.PARTIAL_POINTS_PATH : data/PCN/%s/partial/%s/%s/%02d.pcd 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.val.base.COMPLETE_POINTS_PATH : data/PCN/%s/complete/%s/%s.pcd 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.val.base.CARS : True 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.val.others = edict() 2022-11-04 04:37:20,523 - PoinTr - INFO - config.dataset.val.others.subset : test 2022-11-04 04:37:20,524 - PoinTr - INFO - config.dataset.test = edict() 2022-11-04 04:37:20,524 - PoinTr - INFO - config.dataset.test.base = edict() 2022-11-04 04:37:20,524 - PoinTr - INFO - config.dataset.test.base.NAME : KITTI 2022-11-04 04:37:20,524 - PoinTr - INFO - config.dataset.test.base.CATEGORY_FILE_PATH : data/KITTI/KITTI.json 2022-11-04 04:37:20,524 - PoinTr - INFO - config.dataset.test.base.N_POINTS : 16384 2022-11-04 04:37:20,524 - PoinTr - INFO - config.dataset.test.base.CLOUD_PATH : data/KITTI/cars/%s.pcd 2022-11-04 04:37:20,524 - PoinTr - INFO - config.dataset.test.base.BBOX_PATH : data/KITTI/bboxes/%s.txt 2022-11-04 04:37:20,524 - PoinTr - INFO - config.dataset.test.others = edict() 2022-11-04 04:37:20,524 - PoinTr - INFO - config.dataset.test.others.subset : test 2022-11-04 04:37:20,524 - PoinTr - INFO - config.model = edict() 2022-11-04 04:37:20,524 - PoinTr - INFO - config.model.NAME : PoinTr 2022-11-04 04:37:20,524 - PoinTr - INFO - config.model.num_pred : 14336 2022-11-04 04:37:20,524 - PoinTr - INFO - config.model.num_query : 224 2022-11-04 04:37:20,524 - PoinTr - INFO - config.model.knn_layer : 1 2022-11-04 04:37:20,524 - PoinTr - INFO - config.model.trans_dim : 384 2022-11-04 04:37:20,524 - PoinTr - INFO - config.total_bs : 64 2022-11-04 04:37:20,525 - PoinTr - INFO - config.step_per_update : 1 2022-11-04 04:37:20,525 - PoinTr - INFO - config.max_epoch : 600 2022-11-04 04:37:20,525 - PoinTr - INFO - config.consider_metric : CDL1 2022-11-04 04:37:20,525 - PoinTr - INFO - Distributed training: False 2022-11-04 04:37:20,525 - PoinTr - INFO - Set random seed to 0, deterministic: False 2022-11-04 04:37:20,534 - PCNDATASET - INFO - Collecting files of Taxonomy [ID=02958343, Name=car] 2022-11-04 04:37:20,563 - PCNDATASET - INFO - Complete collecting files of the dataset. Total files: 5677 /usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py:477: UserWarning: This DataLoader will create 4 worker processes in total. Our suggested max number of worker in current system is 2, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary. cpuset_checked)) 2022-11-04 04:37:20,570 - PCNDATASET - INFO - Collecting files of Taxonomy [ID=02958343, Name=car] 2022-11-04 04:37:20,570 - PCNDATASET - INFO - Complete collecting files of the dataset. Total files: 150 2022-11-04 04:37:20,571 - MODEL - INFO - Transformer with knn_layer 1 2022-11-04 04:37:31,629 - PoinTr - INFO - Using Data parallel ... 2022-11-04 04:37:35,690 - PoinTr - INFO - padding while KITTI training Traceback (most recent call last): File "main.py", line 68, in main() File "main.py", line 64, in main run_net(args, config, train_writer, val_writer) File "/content/pointr/tools/runner.py", line 98, in run_net ret = base_model(partial) File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 889, in _call_impl result = self.forward(*input, **kwargs) File "/usr/local/lib/python3.7/dist-packages/torch/nn/parallel/data_parallel.py", line 165, in forward return self.module(*inputs[0], **kwargs[0]) File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 889, in _call_impl result = self.forward(*input, **kwargs) File "/content/pointr/models/PoinTr.py", line 92, in forward q, coarse_point_cloud = self.base_model(xyz) # B M C and B M 3 File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 889, in _call_impl result = self.forward(*input, **kwargs) File "/content/pointr/models/Transformer.py", line 353, in forward coor, f = self.grouper(inpc.transpose(1,2).contiguous()) File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py", line 889, in _call_impl result = self.forward(*input, **kwargs) File "/content/pointr/models/dgcnn_group.py", line 87, in forward f = self.get_graph_feature(coor, f, coor, f) File "/content/pointr/models/dgcnn_group.py", line 67, in get_graph_feature assert idx.shape[1] == k AssertionError
    opened by jackie174 23
  • How to collect the coordinates of the points from the completed point cloud?

    How to collect the coordinates of the points from the completed point cloud?

    Hi !

    I would like to know how I could run the poinTr program on a personnal incompleted point cloud. Also could you help me on the way of collecting the coordinates of the points from the completed point cloud ?

    Thank you

    opened by LeiKeRrr 16
  • pre-traind model

    pre-traind model

    In you experiments, you have compared your model with 'PF-Net' and 'GRNet'. Could you provide the pre-trained models of 'PF-Net' and 'GRNet' on PCN and KITTI datasets? We don't have enough resources to trian the model. Thanks a lot.

    opened by beibeirory 14
  • Question about dataset config and reproducing results

    Question about dataset config and reproducing results

    Hi Xumin,

    Congrats on the great work and thank you for sharing your work with the community!

    I have two questions, could you help me?

    1. under the PoinTr.yaml, why val dataset is using "test" as a subset? (see the red circle in the picture below)
    Screen Shot 2022-05-06 at 9 34 35 PM
    1. I am trying to reproduce the paper result of the PoinTr model on PCN dataset. I am using a single 3080Ti GPU, and I set the batch size to 26. In addition, I changed the "test" circled in the picture above into "val". Other than that, everything is following the configuration of the repo.

    Here is my training curves for about 200 epoches): Screenshot from 2022-05-06 21-46-04

    Somehow, the validation curves seem to be not stable, is this normal?

    Looking forward to your reply, and have a great weekend!

    Barry, Technical University of Munich

    opened by ChenBarryHu 13
  • How can i fix the error clamed

    How can i fix the error clamed "ModuleNotFoundError: No module named 'chamfer'"?

    HI! Thank you for your open source! I am trying to run examples you written in your document, but after input the code, it remind me an error named "ModuleNotFoundError: No module named 'chamfer'". How can I fix it? Looking for your help.

    opened by Jimmybear-123 9
  • Error occured when testing the PoinTr pretrained model on the PCN benchmark :

    Error occured when testing the PoinTr pretrained model on the PCN benchmark : "Error building extension 'knn' "

    Hi !

    I am trying to test the PoinTr pretrained model on the PCN benchmark but I get this error :

    `C:\Repos\PoinTr-master>bash ./scripts/test.sh 0
    --ckpts ./pretrained/PoinTr_PCN.pth
    --config ./cfgs/PCN_models/PoinTr.yaml
    --exp_name example

    • GPUS=0
    • PY_ARGS=''
    • CUDA_VISIBLE_DEVICES=0
    • /mnt/c/Users/peter/AppData/Local/Programs/Python/Python39/python.exe main.py --test '' Traceback (most recent call last): File "C:\Users\peter\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\utils\cpp_extension.py", line 1717, in _run_ninja_build subprocess.run( File "C:\Users\peter\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 528, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last): File "C:\Repos\PoinTr-master\main.py", line 1, in from tools import run_net File "C:\Repos\PoinTr-master\tools_init_.py", line 1, in from .runner import run_net File "C:\Repos\PoinTr-master\tools\runner.py", line 5, in from tools import builder File "C:\Repos\PoinTr-master\tools\builder.py", line 8, in from models import build_model_from_cfg File "C:\Repos\PoinTr-master\models_init_.py", line 3, in import models.PoinTr File "C:\Repos\PoinTr-master\models\PoinTr.py", line 6, in from .Transformer import PCTransformer File "C:\Repos\PoinTr-master\models\Transformer.py", line 6, in from .dgcnn_group import DGCNN_Grouper File "C:\Repos\PoinTr-master\models\dgcnn_group.py", line 4, in from knn_cuda import KNN File "C:\Users\peter\AppData\Local\Programs\Python\Python39\lib\site-packages\knn_cuda_init_.py", line 38, in knn = load_cpp_ext("knn") File "C:\Users\peter\AppData\Local\Programs\Python\Python39\lib\site-packages\knn_cuda_init.py", line 26, in load_cpp_ext ext = load( File "C:\Users\peter\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\utils\cpp_extension.py", line 1124, in load return _jit_compile( File "C:\Users\peter\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\utils\cpp_extension.py", line 1337, in _jit_compile _write_ninja_file_and_build_library( File "C:\Users\peter\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\utils\cpp_extension.py", line 1449, in _write_ninja_file_and_build_library _run_ninja_build( File "C:\Users\peter\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\utils\cpp_extension.py", line 1733, in _run_ninja_build raise RuntimeError(message) from e RuntimeError: Error building extension 'knn': [1/1] "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64/link.exe" knn.o knn.cuda.o /nologo /DLL c10.lib c10_cuda.lib torch_cpu.lib torch _cuda.lib -INCLUDE:?warp_size@cuda@at@@YAHXZ torch.lib /LIBPATH:C:\Users\peter\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\lib torch_python.lib /LIBPATH:C:\Users\peter\AppData\Local\Programs\Python\Python39\libs "/LIBP ATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib/x64" cudart.lib /out:knn.pyd FAILED: knn.pyd "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64/link.exe" knn.o knn.cuda.o /nologo /DLL c10.lib c10_cuda.lib torch_cpu.lib torch_cuda.lib -INCLUDE:?warp_size@cuda@at@@YAHXZ torch.l ib /LIBPATH:C:\Users\peter\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\lib torch_python.lib /LIBPATH:C:\Users\peter\AppData\Local\Programs\Python\Python39\libs "/LIBPATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CU DA\v10.2\lib/x64" cudart.lib /out:knn.pyd CrÚation de la bibliothÞque knn.lib et de l'objet knn.exp knn.o : error LNK2019: symbole externe non rÚsolu "public: long * __cdecl at::TensorBase::data_ptr(void)const " (??$data_ptr@J@TensorBase@at@@QEBAPEAJXZ) rÚfÚrencÚ dans la fonction "public: long * __cdecl at::Tensor::data(voi d)const " (??$data@J@Tensor@at@@QEBAPEAJXZ) knn.pyd : fatal error LNK1120: 1 externes non rÚsolus ninja: build stopped: subcommand failed.`

    I have already done the solution for the commun bug in the chamfer distance installation (issue #6 ).

    I am on Windows and I was wondering if this error could come from an error when building pytorch extensions.

    Windows 
    opened by LeiKeRrr 8
  • setup.py issue

    setup.py issue

    Hi, Thanks for your great paper and code, I bnefit a lot.

    But when I run python setup.py install --user manually under each dependency directory ,some errors occur:

    running install /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/command/install.py:37: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. setuptools.SetuptoolsDeprecationWarning, /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/command/easy_install.py:147: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools. EasyInstallDeprecationWarning, running bdist_egg running egg_info writing chamfer.egg-info/PKG-INFO writing dependency_links to chamfer.egg-info/dependency_links.txt writing top-level names to chamfer.egg-info/top_level.txt reading manifest file 'chamfer.egg-info/SOURCES.txt' writing manifest file 'chamfer.egg-info/SOURCES.txt' installing library code to build/bdist.linux-x86_64/egg running install_lib running build_ext building 'chamfer' extension Emitting ninja build file /home/zhang/lws/PoinTr-master/extensions/chamfer_dist/build/temp.linux-x86_64-3.7/build.ninja... Compiling objects... Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N) ninja: warning: bad deps log signature or version; starting over [1/2] c++ -MMD -MF /home/zhang/lws/PoinTr-master/extensions/chamfer_dist/build/temp.linux-x86_64-3.7/chamfer_cuda.o.d -pthread -B /home/zhang/anaconda3/envs/lws/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include -I/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/TH -I/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/zhang/anaconda3/envs/lws/include/python3.7m -c -c /home/zhang/lws/PoinTr-master/extensions/chamfer_dist/chamfer_cuda.cpp -o /home/zhang/lws/PoinTr-master/extensions/chamfer_dist/build/temp.linux-x86_64-3.7/chamfer_cuda.o -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=chamfer -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14 cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ In file included from /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/ATen/Parallel.h:149:0, from /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/torch/csrc/api/include/torch/utils.h:3, from /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/torch/csrc/api/include/torch/nn/cloneable.h:5, from /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/torch/csrc/api/include/torch/nn.h:3, from /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/torch/csrc/api/include/torch/all.h:12, from /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/torch/extension.h:4, from /home/zhang/lws/PoinTr-master/extensions/chamfer_dist/chamfer_cuda.cpp:9: /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/ATen/ParallelOpenMP.h:84:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas] #pragma omp parallel for if ((end - begin) >= grain_size)

    [2/2] /usr/local/cuda-10.1/bin/nvcc -I/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include -I/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/TH -I/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/zhang/anaconda3/envs/lws/include/python3.7m -c -c /home/zhang/lws/PoinTr-master/extensions/chamfer_dist/chamfer.cu -o /home/zhang/lws/PoinTr-master/extensions/chamfer_dist/build/temp.linux-x86_64-3.7/chamfer.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="gcc"' '-DPYBIND11_STDLIB="libstdcpp"' '-DPYBIND11_BUILD_ABI="cxxabi1011"' -DTORCH_EXTENSION_NAME=chamfer -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14 FAILED: /home/zhang/lws/PoinTr-master/extensions/chamfer_dist/build/temp.linux-x86_64-3.7/chamfer.o /usr/local/cuda-10.1/bin/nvcc -I/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include -I/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/TH -I/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/zhang/anaconda3/envs/lws/include/python3.7m -c -c /home/zhang/lws/PoinTr-master/extensions/chamfer_dist/chamfer.cu -o /home/zhang/lws/PoinTr-master/extensions/chamfer_dist/build/temp.linux-x86_64-3.7/chamfer.o -D__CUDA_NO_HALF_OPERATORS -D__CUDA_NO_HALF_CONVERSIONS_ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=chamfer -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14 /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/ATen/core/boxing/impl/boxing.h(100): warning: integer conversion resulted in a change of sign

    /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/ATen/core/op_registration/op_whitelist.h(39): warning: integer conversion resulted in a change of sign

    /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/ATen/core/builtin_function.h(97): warning: statement is unreachable

    /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/torch/csrc/api/include/torch/enum.h(191): warning: statement is unreachable

    /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/ATen/core/boxing/impl/boxing.h(100): warning: integer conversion resulted in a change of sign

    /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/ATen/core/op_registration/op_whitelist.h(39): warning: integer conversion resulted in a change of sign

    /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/ATen/core/builtin_function.h(97): warning: statement is unreachable

    /home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/include/torch/csrc/api/include/torch/enum.h(191): warning: statement is unreachable

    /usr/include/c++/7/bits/basic_string.tcc: In instantiation of ‘static std::basic_string<_CharT, _Traits, _Alloc>::_Rep* std::basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_create(std::basic_string<_CharT, _Traits, _Alloc>::size_type, std::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char16_t; _Traits = std::char_traits<char16_t>; _Alloc = std::allocator<char16_t>; std::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’: /usr/include/c++/7/bits/basic_string.tcc:578:28: required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&, std::forward_iterator_tag) [with _FwdIterator = const char16_t*; _CharT = char16_t; _Traits = std::char_traits<char16_t>; _Alloc = std::allocator<char16_t>]’ /usr/include/c++/7/bits/basic_string.h:5042:20: required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct_aux(_InIterator, _InIterator, const _Alloc&, std::__false_type) [with _InIterator = const char16_t*; _CharT = char16_t; _Traits = std::char_traits<char16_t>; _Alloc = std::allocator<char16_t>]’ /usr/include/c++/7/bits/basic_string.h:5063:24: required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&) [with _InIterator = const char16_t*; _CharT = char16_t; _Traits = std::char_traits<char16_t>; _Alloc = std::allocator<char16_t>]’ /usr/include/c++/7/bits/basic_string.tcc:656:134: required from ‘std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, std::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char16_t; _Traits = std::char_traits<char16_t>; _Alloc = std::allocator<char16_t>; std::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’ /usr/include/c++/7/bits/basic_string.h:6688:95: required from here /usr/include/c++/7/bits/basic_string.tcc:1067:16: error: cannot call member function ‘void std::basic_string<_CharT, _Traits, _Alloc>::_Rep::_M_set_sharable() [with _CharT = char16_t; _Traits = std::char_traits<char16_t>; _Alloc = std::allocator<char16_t>]’ without object __p->_M_set_sharable(); ~~~~~~~~~^~ /usr/include/c++/7/bits/basic_string.tcc: In instantiation of ‘static std::basic_string<_CharT, _Traits, _Alloc>::_Rep* std::basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_create(std::basic_string<_CharT, _Traits, _Alloc>::size_type, std::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char32_t; _Traits = std::char_traits<char32_t>; _Alloc = std::allocator<char32_t>; std::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’: /usr/include/c++/7/bits/basic_string.tcc:578:28: required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&, std::forward_iterator_tag) [with _FwdIterator = const char32_t*; _CharT = char32_t; _Traits = std::char_traits<char32_t>; _Alloc = std::allocator<char32_t>]’ /usr/include/c++/7/bits/basic_string.h:5042:20: required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct_aux(_InIterator, _InIterator, const _Alloc&, std::__false_type) [with _InIterator = const char32_t*; _CharT = char32_t; _Traits = std::char_traits<char32_t>; _Alloc = std::allocator<char32_t>]’ /usr/include/c++/7/bits/basic_string.h:5063:24: required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&) [with _InIterator = const char32_t*; _CharT = char32_t; _Traits = std::char_traits<char32_t>; _Alloc = std::allocator<char32_t>]’ /usr/include/c++/7/bits/basic_string.tcc:656:134: required from ‘std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, std::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char32_t; _Traits = std::char_traits<char32_t>; _Alloc = std::allocator<char32_t>; std::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’ /usr/include/c++/7/bits/basic_string.h:6693:95: required from here /usr/include/c++/7/bits/basic_string.tcc:1067:16: error: cannot call member function ‘void std::basic_string<_CharT, _Traits, _Alloc>::_Rep::_M_set_sharable() [with _CharT = char32_t; _Traits = std::char_traits<char32_t>; _Alloc = std::allocator<char32_t>]’ without object ninja: build stopped: subcommand failed. Traceback (most recent call last): File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1539, in _run_ninja_build env=env) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/subprocess.py", line 512, in run output=stdout, stderr=stderr) subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last): File "setup.py", line 19, in cmdclass={'build_ext': BuildExtension}) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/init.py", line 87, in setup return distutils.core.setup(**attrs) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/core.py", line 148, in setup return run_commands(dist) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/core.py", line 163, in run_commands dist.run_commands() File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands self.run_command(cmd) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/dist.py", line 1214, in run_command super().run_command(command) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 986, in run_command cmd_obj.run() File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/command/install.py", line 74, in run self.do_egg_install() File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/command/install.py", line 123, in do_egg_install self.run_command('bdist_egg') File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/dist.py", line 1214, in run_command super().run_command(command) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 986, in run_command cmd_obj.run() File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/command/bdist_egg.py", line 165, in run cmd = self.call_command('install_lib', warn_dir=0) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/command/bdist_egg.py", line 151, in call_command self.run_command(cmdname) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/dist.py", line 1214, in run_command super().run_command(command) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 986, in run_command cmd_obj.run() File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/command/install_lib.py", line 11, in run self.build() File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/command/install_lib.py", line 107, in build self.run_command('build_ext') File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/dist.py", line 1214, in run_command super().run_command(command) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 986, in run_command cmd_obj.run() File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/command/build_ext.py", line 79, in run _build_ext.run(self) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/command/build_ext.py", line 339, in run self.build_extensions() File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 670, in build_extensions build_ext.build_extensions(self) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/command/build_ext.py", line 448, in build_extensions self._build_extensions_serial() File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/command/build_ext.py", line 473, in _build_extensions_serial self.build_extension(ext) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/command/build_ext.py", line 202, in build_extension _build_ext.build_extension(self, ext) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/setuptools/_distutils/command/build_ext.py", line 534, in build_extension depends=ext.depends) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 500, in unix_wrap_ninja_compile with_cuda=with_cuda) File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1255, in _write_ninja_file_and_compile_objects error_prefix='Error compiling objects for extension') File "/home/zhang/anaconda3/envs/lws/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1555, in _run_ninja_build raise RuntimeError(message) from e RuntimeError: Error compiling objects for extension

    This is my envs: -- pytorch 1.7.1 -- python 3.7 -- cuda 10.1 -- nvcc 10.1

    I downloaded PyTorch and CUDa from the appropriate link on the PyTorch website ,but it still has NVCC errors

    Can you give me some advice? thank you a lot.

    opened by xiaoxuetulws 5
  • ImportError: /home/cky/anaconda3/envs/python37/lib/python3.7/site-packages/knn_cuda/csrc/_ext/knn/knn.so: cannot open shared object file: No such file or directory

    ImportError: /home/cky/anaconda3/envs/python37/lib/python3.7/site-packages/knn_cuda/csrc/_ext/knn/knn.so: cannot open shared object file: No such file or directory

    Hi, I have run the building commands, but when I run the first example training command the error shows like this. The KNN cuda 0.2 is installed. Could you please give me some advice?

    opened by chky1997 5
  • Error while using pretrained model

    Error while using pretrained model

    Hi I'm trying to feed a point cloud that has been generated with open3d to a pretrained PCN but I get this error :

    'open3d.cpu.pybind.geometry.PointCloud' object has no attribute 'shape'

    Can you please help me? Thanks a lot.

    opened by Ali-Rashidi 4
  • For Point Cloud Challenge 2021 on Completion and Registration

    For Point Cloud Challenge 2021 on Completion and Registration

    Congratulations on winning the first place in the competition, I notice that you add the RENet on your basis network. Could you give some specific message about the inpout of the RENet? The input of point is the final rebuilded point in your work? And what is the input of feature to the RENet? Thank you

    opened by JiangZhenW 4
  • About F1 score

    About F1 score

    Hi, thanks for sharing the amazing work. I have a question about F1 score listed in the paper. Is the F1 on ShapeNet34 an averaged score across the three difficulty degrees or is it just from a single difficulty level such as Simple?

    opened by AllenXiangX 4
  • reduce dataset size

    reduce dataset size

    I use following command to train pointTr
    bash ./scripts/train.sh 0 --config ./cfgs/KITTI_models/PoinTr.yaml --exp_name example. The training speed is slow, I tried to reduce both the size of KITTI dataset, PCN dataset and batch size of PointTr using following command to fast the training speed, but the training speed is still slow. what else should I to modify to reduce the dataset?

    # open terminal in Colab, type the below in the command line:
    # open /content/pointr/cfgs/KITTI_models/PoinTr.yaml
    # set total_bs : 2 max_epoch : 100
    # open /content/pointr/cfgs/dataset_configs/PCNCars.yaml
    # open /content/pointr/cfgs/dataset_configs/KITTI.yaml
    # set N_points: 163
    # open /content/pointr/datasets/PCNDataset.py
    # set data['gt'][:163]
    
    /content/pointr
    /usr/local/envs/myenv/bin/python
    + GPUS=0
    + PY_ARGS='--config ./cfgs/KITTI_models/PoinTr.yaml --exp_name example'
    + CUDA_VISIBLE_DEVICES=0
    + python main.py --config ./cfgs/KITTI_models/PoinTr.yaml --exp_name example
    2022-11-23 22:49:54,392 - PoinTr - INFO - Copy the Config file from ./cfgs/KITTI_models/PoinTr.yaml to ./experiments/PoinTr/KITTI_models/example/config.yaml
    2022-11-23 22:49:54,393 - PoinTr - INFO - args.config : ./cfgs/KITTI_models/PoinTr.yaml
    2022-11-23 22:49:54,393 - PoinTr - INFO - args.launcher : none
    2022-11-23 22:49:54,393 - PoinTr - INFO - args.local_rank : 0
    2022-11-23 22:49:54,393 - PoinTr - INFO - args.num_workers : 4
    2022-11-23 22:49:54,393 - PoinTr - INFO - args.seed : 0
    2022-11-23 22:49:54,393 - PoinTr - INFO - args.deterministic : False
    2022-11-23 22:49:54,394 - PoinTr - INFO - args.sync_bn : False
    2022-11-23 22:49:54,394 - PoinTr - INFO - args.exp_name : example
    2022-11-23 22:49:54,394 - PoinTr - INFO - args.start_ckpts : None
    2022-11-23 22:49:54,394 - PoinTr - INFO - args.ckpts : None
    2022-11-23 22:49:54,394 - PoinTr - INFO - args.val_freq : 1
    2022-11-23 22:49:54,394 - PoinTr - INFO - args.resume : False
    2022-11-23 22:49:54,394 - PoinTr - INFO - args.test : False
    2022-11-23 22:49:54,394 - PoinTr - INFO - args.mode : None
    2022-11-23 22:49:54,394 - PoinTr - INFO - args.experiment_path : ./experiments/PoinTr/KITTI_models/example
    2022-11-23 22:49:54,394 - PoinTr - INFO - args.tfboard_path : ./experiments/PoinTr/KITTI_models/TFBoard/example
    2022-11-23 22:49:54,394 - PoinTr - INFO - args.log_name : PoinTr
    2022-11-23 22:49:54,394 - PoinTr - INFO - args.use_gpu : True
    2022-11-23 22:49:54,394 - PoinTr - INFO - args.distributed : False
    2022-11-23 22:49:54,394 - PoinTr - INFO - config.optimizer = edict()
    2022-11-23 22:49:54,394 - PoinTr - INFO - config.optimizer.type : AdamW
    2022-11-23 22:49:54,394 - PoinTr - INFO - config.optimizer.kwargs = edict()
    2022-11-23 22:49:54,394 - PoinTr - INFO - config.optimizer.kwargs.lr : 0.0001
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.optimizer.kwargs.weight_decay : 0.0005
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.scheduler = edict()
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.scheduler.type : LambdaLR
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.scheduler.kwargs = edict()
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.scheduler.kwargs.decay_step : 21
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.scheduler.kwargs.lr_decay : 0.9
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.scheduler.kwargs.lowest_decay : 0.02
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.bnmscheduler = edict()
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.bnmscheduler.type : Lambda
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.bnmscheduler.kwargs = edict()
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.bnmscheduler.kwargs.decay_step : 21
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.bnmscheduler.kwargs.bn_decay : 0.5
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.bnmscheduler.kwargs.bn_momentum : 0.9
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.bnmscheduler.kwargs.lowest_decay : 0.01
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.dataset = edict()
    2022-11-23 22:49:54,395 - PoinTr - INFO - config.dataset.train = edict()
    2022-11-23 22:49:54,396 - PoinTr - INFO - config.dataset.train._base_ = edict()
    2022-11-23 22:49:54,396 - PoinTr - INFO - config.dataset.train._base_.NAME : PCN
    2022-11-23 22:49:54,396 - PoinTr - INFO - config.dataset.train._base_.CATEGORY_FILE_PATH : data/PCN/PCN.json
    2022-11-23 22:49:54,396 - PoinTr - INFO - config.dataset.train._base_.N_POINTS : 163
    2022-11-23 22:49:54,396 - PoinTr - INFO - config.dataset.train._base_.N_RENDERINGS : 8
    2022-11-23 22:49:54,396 - PoinTr - INFO - config.dataset.train._base_.PARTIAL_POINTS_PATH : data/PCN/%s/partial/%s/%s/%02d.pcd
    2022-11-23 22:49:54,396 - PoinTr - INFO - config.dataset.train._base_.COMPLETE_POINTS_PATH : data/PCN/%s/complete/%s/%s.pcd
    2022-11-23 22:49:54,396 - PoinTr - INFO - config.dataset.train._base_.CARS : True
    2022-11-23 22:49:54,396 - PoinTr - INFO - config.dataset.train.others = edict()
    2022-11-23 22:49:54,396 - PoinTr - INFO - config.dataset.train.others.subset : train
    2022-11-23 22:49:54,396 - PoinTr - INFO - config.dataset.train.others.bs : 2
    2022-11-23 22:49:54,396 - PoinTr - INFO - config.dataset.val = edict()
    2022-11-23 22:49:54,396 - PoinTr - INFO - config.dataset.val._base_ = edict()
    2022-11-23 22:49:54,396 - PoinTr - INFO - config.dataset.val._base_.NAME : PCN
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.val._base_.CATEGORY_FILE_PATH : data/PCN/PCN.json
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.val._base_.N_POINTS : 163
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.val._base_.N_RENDERINGS : 8
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.val._base_.PARTIAL_POINTS_PATH : data/PCN/%s/partial/%s/%s/%02d.pcd
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.val._base_.COMPLETE_POINTS_PATH : data/PCN/%s/complete/%s/%s.pcd
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.val._base_.CARS : True
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.val.others = edict()
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.val.others.subset : test
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.test = edict()
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.test._base_ = edict()
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.test._base_.NAME : KITTI
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.test._base_.CATEGORY_FILE_PATH : data/KITTI/KITTI.json
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.test._base_.N_POINTS : 163
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.test._base_.CLOUD_PATH : data/KITTI/cars/%s.pcd
    2022-11-23 22:49:54,397 - PoinTr - INFO - config.dataset.test._base_.BBOX_PATH : data/KITTI/bboxes/%s.txt
    2022-11-23 22:49:54,398 - PoinTr - INFO - config.dataset.test.others = edict()
    2022-11-23 22:49:54,398 - PoinTr - INFO - config.dataset.test.others.subset : test
    2022-11-23 22:49:54,398 - PoinTr - INFO - config.model = edict()
    2022-11-23 22:49:54,398 - PoinTr - INFO - config.model.NAME : PoinTr
    2022-11-23 22:49:54,398 - PoinTr - INFO - config.model.num_pred : 1600
    2022-11-23 22:49:54,398 - PoinTr - INFO - config.model.num_query : 100
    2022-11-23 22:49:54,398 - PoinTr - INFO - config.model.knn_layer : 1
    2022-11-23 22:49:54,398 - PoinTr - INFO - config.model.trans_dim : 384
    2022-11-23 22:49:54,398 - PoinTr - INFO - config.total_bs : 2
    2022-11-23 22:49:54,398 - PoinTr - INFO - config.step_per_update : 1
    2022-11-23 22:49:54,398 - PoinTr - INFO - config.max_epoch : 100
    2022-11-23 22:49:54,398 - PoinTr - INFO - config.consider_metric : CDL1
    2022-11-23 22:49:54,398 - PoinTr - INFO - Distributed training: False
    2022-11-23 22:49:54,398 - PoinTr - INFO - Set random seed to 0, deterministic: False
    2022-11-23 22:49:54,408 - PCNDATASET - INFO - Collecting files of Taxonomy [ID=02958343, Name=car]
    2022-11-23 22:49:54,458 - PCNDATASET - INFO - Complete collecting files of the dataset. Total files: 5677
    2022-11-23 22:49:54,466 - PCNDATASET - INFO - Collecting files of Taxonomy [ID=02958343, Name=car]
    2022-11-23 22:49:54,466 - PCNDATASET - INFO - Complete collecting files of the dataset. Total files: 150
    2022-11-23 22:49:54,467 - MODEL - INFO -  Transformer with knn_layer 1
    2022-11-23 22:49:57,825 - PoinTr - INFO - Using Data parallel ...
    2022-11-23 22:49:58,171 - PoinTr - INFO - padding while KITTI training
    2022-11-23 22:49:59,764 - PoinTr - INFO - [Epoch 0/100][Batch 1/2838] BatchTime = 1.929 (s) DataTime = 0.336 (s) Losses = ['171.1774', '217.5374'] lr = 0.000100
    2022-11-23 22:50:13,609 - PoinTr - INFO - [Epoch 0/100][Batch 101/2838] BatchTime = 0.181 (s) DataTime = 0.002 (s) Losses = ['49.5538', '81.0673'] lr = 0.000100
    2022-11-23 22:50:26,799 - PoinTr - INFO - [Epoch 0/100][Batch 201/2838] BatchTime = 0.098 (s) DataTime = 0.002 (s) Losses = ['45.2846', '51.2348'] lr = 0.000100
    2022-11-23 22:50:37,271 - PoinTr - INFO - [Epoch 0/100][Batch 301/2838] BatchTime = 0.101 (s) DataTime = 0.002 (s) Losses = ['42.0884', '43.5485'] lr = 0.000100
    2022-11-23 22:50:49,402 - PoinTr - INFO - [Epoch 0/100][Batch 401/2838] BatchTime = 0.192 (s) DataTime = 0.002 (s) Losses = ['53.3049', '49.0148'] lr = 0.000100
    2022-11-23 22:51:04,518 - PoinTr - INFO - [Epoch 0/100][Batch 501/2838] BatchTime = 0.105 (s) DataTime = 0.002 (s) Losses = ['40.6047', '41.6563'] lr = 0.000100
    2022-11-23 22:51:14,983 - PoinTr - INFO - [Epoch 0/100][Batch 601/2838] BatchTime = 0.106 (s) DataTime = 0.002 (s) Losses = ['41.7752', '37.6137'] lr = 0.000100
    2022-11-23 22:51:25,518 - PoinTr - INFO - [Epoch 0/100][Batch 701/2838] BatchTime = 0.146 (s) DataTime = 0.002 (s) Losses = ['40.7025', '31.4210'] lr = 0.000100
    2022-11-23 22:51:41,937 - PoinTr - INFO - [Epoch 0/100][Batch 801/2838] BatchTime = 0.099 (s) DataTime = 0.002 (s) Losses = ['39.4911', '42.2679'] lr = 0.000100
    2022-11-23 22:51:52,448 - PoinTr - INFO - [Epoch 0/100][Batch 901/2838] BatchTime = 0.103 (s) DataTime = 0.002 (s) Losses = ['42.6667', '31.6663'] lr = 0.000100
    2022-11-23 22:52:02,845 - PoinTr - INFO - [Epoch 0/100][Batch 1001/2838] BatchTime = 0.110 (s) DataTime = 0.002 (s) Losses = ['41.8228', '32.8068'] lr = 0.000100
    2022-11-23 22:52:18,260 - PoinTr - INFO - [Epoch 0/100][Batch 1101/2838] BatchTime = 0.188 (s) DataTime = 0.002 (s) Losses = ['67.8683', '63.7105'] lr = 0.000100
    2022-11-23 22:52:34,076 - PoinTr - INFO - [Epoch 0/100][Batch 1201/2838] BatchTime = 0.151 (s) DataTime = 0.002 (s) Losses = ['48.7156', '49.9901'] lr = 0.000100
    2022-11-23 22:52:46,241 - PoinTr - INFO - [Epoch 0/100][Batch 1301/2838] BatchTime = 0.178 (s) DataTime = 0.002 (s) Losses = ['43.3571', '40.0096'] lr = 0.000100
    2022-11-23 22:53:02,159 - PoinTr - INFO - [Epoch 0/100][Batch 1401/2838] BatchTime = 0.102 (s) DataTime = 0.002 (s) Losses = ['40.2321', '33.9443'] lr = 0.000100
    2022-11-23 22:53:12,618 - PoinTr - INFO - [Epoch 0/100][Batch 1501/2838] BatchTime = 0.106 (s) DataTime = 0.001 (s) Losses = ['46.2681', '50.6158'] lr = 0.000100
    2022-11-23 22:53:23,167 - PoinTr - INFO - [Epoch 0/100][Batch 1601/2838] BatchTime = 0.104 (s) DataTime = 0.002 (s) Losses = ['38.4925', '40.9973'] lr = 0.000100
    2022-11-23 22:53:39,609 - PoinTr - INFO - [Epoch 0/100][Batch 1701/2838] BatchTime = 0.108 (s) DataTime = 0.002 (s) Losses = ['38.7526', '42.9651'] lr = 0.000100
    2022-11-23 22:53:49,840 - PoinTr - INFO - [Epoch 0/100][Batch 1801/2838] BatchTime = 0.106 (s) DataTime = 0.002 (s) Losses = ['41.1473', '35.3604'] lr = 0.000100
    2022-11-23 22:54:00,102 - PoinTr - INFO - [Epoch 0/100][Batch 1901/2838] BatchTime = 0.114 (s) DataTime = 0.002 (s) Losses = ['37.8629', '46.1669'] lr = 0.000100
    2022-11-23 22:54:14,742 - PoinTr - INFO - [Epoch 0/100][Batch 2001/2838] BatchTime = 0.144 (s) DataTime = 0.002 (s) Losses = ['40.1596', '41.9645'] lr = 0.000100
    2022-11-23 22:54:27,402 - PoinTr - INFO - [Epoch 0/100][Batch 2101/2838] BatchTime = 0.104 (s) DataTime = 0.002 (s) Losses = ['41.6201', '34.9512'] lr = 0.000100
    2022-11-23 22:54:37,745 - PoinTr - INFO - [Epoch 0/100][Batch 2201/2838] BatchTime = 0.102 (s) DataTime = 0.001 (s) Losses = ['39.5171', '41.0923'] lr = 0.000100
    2022-11-23 22:54:50,710 - PoinTr - INFO - [Epoch 0/100][Batch 2301/2838] BatchTime = 0.180 (s) DataTime = 0.002 (s) Losses = ['40.5638', '43.5947'] lr = 0.000100
    2022-11-23 22:55:05,328 - PoinTr - INFO - [Epoch 0/100][Batch 2401/2838] BatchTime = 0.183 (s) DataTime = 0.002 (s) Losses = ['41.9312', '34.2122'] lr = 0.000100
    2022-11-23 22:55:21,392 - PoinTr - INFO - [Epoch 0/100][Batch 2501/2838] BatchTime = 0.104 (s) DataTime = 0.002 (s) Losses = ['43.6710', '37.7401'] lr = 0.000100
    2022-11-23 22:55:36,679 - PoinTr - INFO - [Epoch 0/100][Batch 2601/2838] BatchTime = 0.150 (s) DataTime = 0.002 (s) Losses = ['43.4865', '35.1678'] lr = 0.000100
    2022-11-23 22:55:47,951 - PoinTr - INFO - [Epoch 0/100][Batch 2701/2838] BatchTime = 0.100 (s) DataTime = 0.002 (s) Losses = ['47.0441', '47.0863'] lr = 0.000100
    2022-11-23 22:55:58,329 - PoinTr - INFO - [Epoch 0/100][Batch 2801/2838] BatchTime = 0.111 (s) DataTime = 0.002 (s) Losses = ['39.8397', '32.3641'] lr = 0.000100
    2022-11-23 22:56:02,181 - PoinTr - INFO - [Training] EPOCH: 0 EpochTime = 364.346 (s) Losses = ['43.7548', '45.2192']
    2022-11-23 22:56:03,683 - PoinTr - INFO - Save checkpoint at ./experiments/PoinTr/KITTI_models/example/ckpt-last.pth
    
    
    opened by Zhangshiqi01 3
  • 训练自己数据集

    训练自己数据集

    你好,我是一个刚接触点云的小白,没有找到太多训练方面的资料。我在训练自己数据集时,将ShapeNet-55文件中的点云文件和txt文件都换成了我自己的数据文件,但训练时出现以下问题,想请教以下自己点云数据应该如何规范化与ShapeNet-55中的数据对齐呢 qwq [DATASET] Open file data/ShapeNet55-34/ShapeNet-55/train.txt [DATASET] 4 instances were loaded [DATASET] Open file data/ShapeNet55-34/ShapeNet-55/test.txt [DATASET] 10518 instances were loaded 2022-11-01 20:36:45,313 - MODEL - INFO - Transformer with knn_layer 1 2022-11-01 20:36:47,342 - PoinTr - INFO - Using Data parallel ... /home/a/anaconda3/envs/10.1/lib/python3.8/site-packages/torch/optim/lr_scheduler.py:129: UserWarning: Detected call of lr_scheduler.step() before optimizer.step(). In PyTorch 1.1.0 and later, you should call them in the opposite order: optimizer.step() before lr_scheduler.step(). Failure to do this will result in PyTorch skipping the first value of the learning rate schedule. See more details at https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate warnings.warn("Detected call of lr_scheduler.step() before optimizer.step(). " /home/a/anaconda3/envs/10.1/lib/python3.8/site-packages/torch/optim/lr_scheduler.py:154: UserWarning: The epoch parameter in scheduler.step() was not necessary and is being deprecated where possible. Please use scheduler.step() to step the scheduler. During the deprecation, if epoch is different from None, the closed form is used instead of the new chainable form, where available. Please open an issue if you are unable to replicate your use case: https://github.com/pytorch/pytorch/issues/new/choose. warnings.warn(EPOCH_DEPRECATION_WARNING, UserWarning) Traceback (most recent call last): File "main.py", line 68, in main() File "main.py", line 64, in main run_net(args, config, train_writer, val_writer) File "/home/a/PoinTr/tools/runner.py", line 142, in run_net train_writer.add_scalar('Loss/Epoch/Sparse', losses.avg(0), epoch) File "/home/a/PoinTr/utils/AverageMeter.py", line 42, in avg return self._sum[idx] / self._count[idx] ZeroDivisionError: division by zero

    opened by 8umpk1n 5
  • Confuse about the shapenet dataloader

    Confuse about the shapenet dataloader

    Hi @yuxumin, Thanks for your contributions to build new benchmarks ShapeNet55/34. I have a question about the shapenet dataloader part. In the dataloader, the pc_norm function will normalize the point cloud data to [-1,1],and when training / tesing will do the operation of seprate_point_cloud. So the question is , in the real scenario ,i got no idea to get the full point cloud of that object. And when i use part of the point cloud of an object to normalize and inference ,the result is mess up. so , i 'm looking forward to your reply.

    opened by Nathansong 1
  • question about Table 1

    question about Table 1

    Hi, thanks for the great work! I have a question about Table 1 of the paper, for the table below, did you train a model for each category separately and test or did you train ONE model on 55 categories and test on each category? Thanks

    Screenshot from 2022-07-26 18-26-39

    opened by qiminchen 1
  • Heads Up on Chamfer Distance

    Heads Up on Chamfer Distance

    I was getting completely inconsistent results and couldn't figure out why. It turns out I had to call contiguous() on the point clouds before measuring the results with ChamferFunction. It wasn't happening before and it might be related to the PyTorch version I'm using (1.13.0.dev20220630 py3.8_cuda11.3_cudnn8_0 pytorch-nightly) since it started happening when I changed my environment.

    It is easy to fix but realizing that it was even happening and pinpointing the problem was a bit challenging.

    opened by andrearosasco 0
  • Trying PoinTr on a custom dataset

    Trying PoinTr on a custom dataset

    Hello and congrats on your work!

    I have my own dataset which I would like to train PoinTr on, the dataset consists of one category of objects and I am following the implementation of PCN to configure my dataset. The result I get is quite surprising, first of all, although I only have one category, I only have a F-score of 4 percent, Second, I have the same pattern in all of my test results, a group of outliers in the prediction. Do you have any suggestions as to how to improve the output?(hyper parameter tuning, the way I should normalize data(I have normalized the same as PCN [-0.5,0.5] Screenshot from 2022-06-27 15-24-44 , etc.)

    opened by Mona-ShZeinoddin 7
Owner
Xumin Yu
Xumin Yu
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
Based on the paper "Geometry-aware Instance-reweighted Adversarial Training" ICLR 2021 oral

Geometry-aware Instance-reweighted Adversarial Training This repository provides codes for Geometry-aware Instance-reweighted Adversarial Training (ht

Jingfeng 47 Dec 22, 2022
[CVPR 2021 Oral] Variational Relational Point Completion Network

VRCNet: Variational Relational Point Completion Network This repository contains the PyTorch implementation of the paper: Variational Relational Point

PL 121 Dec 12, 2022
Point Cloud Denoising input segmentation output raw point-cloud valid/clear fog rain de-noised Abstract Lidar sensors are frequently used in environme

Point Cloud Denoising input segmentation output raw point-cloud valid/clear fog rain de-noised Abstract Lidar sensors are frequently used in environme

null 75 Nov 24, 2022
MVP Benchmark for Multi-View Partial Point Cloud Completion and Registration

MVP Benchmark: Multi-View Partial Point Clouds for Completion and Registration [NEWS] 2021-07-12 [NEW ?? ] The submission on Codalab starts! 2021-07-1

PL 93 Dec 21, 2022
PyTorch implementation for View-Guided Point Cloud Completion

PyTorch implementation for View-Guided Point Cloud Completion

null 22 Jan 4, 2023
Code Release for ICCV 2021 (oral), "AdaFit: Rethinking Learning-based Normal Estimation on Point Clouds"

AdaFit: Rethinking Learning-based Normal Estimation on Point Clouds (ICCV 2021 oral) **Project Page | Arxiv ** Runsong Zhu¹, Yuan Liu², Zhen Dong¹, Te

null 40 Dec 30, 2022
Not All Points Are Equal: Learning Highly Efficient Point-based Detectors for 3D LiDAR Point Clouds (CVPR 2022, Oral)

Not All Points Are Equal: Learning Highly Efficient Point-based Detectors for 3D LiDAR Point Clouds (CVPR 2022, Oral) This is the official implementat

Yifan Zhang 259 Dec 25, 2022
This Repo is the official CUDA implementation of ICCV 2019 Oral paper for CARAFE: Content-Aware ReAssembly of FEatures

Introduction This Repo is the official CUDA implementation of ICCV 2019 Oral paper for CARAFE: Content-Aware ReAssembly of FEatures. @inproceedings{Wa

Jiaqi Wang 42 Jan 7, 2023
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
Unofficial implementation of Point-Unet: A Context-Aware Point-Based Neural Network for Volumetric Segmentation

Point-Unet This is an unofficial implementation of the MICCAI 2021 paper Point-Unet: A Context-Aware Point-Based Neural Network for Volumetric Segment

Namt0d 9 Dec 7, 2022
Code for paper "ASAP-Net: Attention and Structure Aware Point Cloud Sequence Segmentation"

ASAP-Net This project implements ASAP-Net of paper ASAP-Net: Attention and Structure Aware Point Cloud Sequence Segmentation (BMVC2020). Overview We i

Hanwen Cao 26 Aug 25, 2022
Part-Aware Data Augmentation for 3D Object Detection in Point Cloud

Part-Aware Data Augmentation for 3D Object Detection in Point Cloud This repository contains a reference implementation of our Part-Aware Data Augment

Jaeseok Choi 62 Jan 3, 2023
[ACM MM 2021] Diverse Image Inpainting with Bidirectional and Autoregressive Transformers

Diverse Image Inpainting with Bidirectional and Autoregressive Transformers Installation pip install -r requirements.txt Dataset Preparation Given the

Yingchen Yu 25 Nov 9, 2022
Towers of Babel: Combining Images, Language, and 3D Geometry for Learning Multimodal Vision. ICCV 2021.

Towers of Babel: Combining Images, Language, and 3D Geometry for Learning Multimodal Vision Download links and PyTorch implementation of "Towers of Ba

Blakey Wu 40 Dec 14, 2022
REGTR: End-to-end Point Cloud Correspondences with Transformers

REGTR: End-to-end Point Cloud Correspondences with Transformers This repository contains the source code for REGTR. REGTR utilizes multiple transforme

Zi Jian Yew 108 Dec 17, 2022
The official implementation of ICCV paper "Box-Aware Feature Enhancement for Single Object Tracking on Point Clouds".

Box-Aware Tracker (BAT) Pytorch-Lightning implementation of the Box-Aware Tracker. Box-Aware Feature Enhancement for Single Object Tracking on Point C

Kangel Zenn 5 Mar 26, 2022