Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Opencv | 69,161 | 35 | 15 hours ago | 29 | September 22, 2022 | 2,466 | apache-2.0 | C++ | ||
Open Source Computer Vision Library | ||||||||||
Cs Video Courses | 56,257 | a day ago | 17 | |||||||
List of Computer Science courses with video lectures. | ||||||||||
D2l Zh | 44,013 | 1 | a day ago | 45 | March 25, 2022 | 34 | apache-2.0 | Python | ||
《动手学深度学习》:面向中文读者、能运行、可讨论。中英文版被60多个国家的400多所大学用于教学。 | ||||||||||
Openpose | 26,821 | a month ago | 235 | other | C++ | |||||
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation | ||||||||||
Applied Ml | 24,242 | 7 days ago | 3 | mit | ||||||
📚 Papers & tech blogs by companies sharing their work on data science & machine learning in production. | ||||||||||
Mediapipe | 21,973 | 94 | 15 hours ago | 24 | June 28, 2022 | 293 | apache-2.0 | C++ | ||
Cross-platform, customizable ML solutions for live and streaming media. | ||||||||||
Darknet | 20,416 | 3 months ago | n,ull | other | C | |||||
YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet ) | ||||||||||
Pytorch Cyclegan And Pix2pix | 19,434 | 3 months ago | 476 | other | Python | |||||
Image-to-Image Translation in PyTorch | ||||||||||
Learnopencv | 18,631 | 4 days ago | 252 | Jupyter Notebook | ||||||
Learn OpenCV : C++ and Python Examples | ||||||||||
D2l En | 18,001 | 2 days ago | 99 | other | Python | |||||
Interactive deep learning book with multi-framework code, math, and discussions. Adopted at 400 universities from 60 countries including Stanford, MIT, Harvard, and Cambridge. |
Created by Xumin Yu*, Yongming Rao*, Ziyi Wang, Zuyan Liu, Jiwen Lu, Jie Zhou
[arXiv] [Video] [Dataset] [Models] [supp]
This repository contains PyTorch implementation for PoinTr: Diverse Point Cloud Completion with Geometry-Aware Transformers (ICCV 2021 Oral Presentation).
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.
datasets/PCNDataset.py
(#27), and update the performance of PoinTr on PCN benchmark (CD from 8.38 to 7.26).We provide pretrained PoinTr models: | dataset | url| performance | | --- | --- | --- | | ShapeNet-55 | [Tsinghua Cloud] / [Google Drive] / [BaiDuYun] (code:erdh) | CD = 1.09e-3| | ShapeNet-34 | [Tsinghua Cloud] / [Google Drive] / [BaiDuYun] (code:atbb ) | CD = 2.05e-3| | PCN | [Tsinghua Cloud] / [Google Drive] / [BaiDuYun] (code:9g79) | CD = 8.38e-3| | PCN_new | [Tsinghua Cloud] / [Google Drive] / [BaiDuYun] (code:aru3 ) |CD = 7.26e-3| | KITTI | [Tsinghua Cloud] / [Google Drive] / [BaiDuYun] (code:99om) | MMD = 5.04e-4 |
We provide pretrained AdaPoinTr models (coming soon): | dataset | url| performance | | --- | --- | --- | | ShapeNet-55 | Tsinghua Cloud / Google Drive / BaiDuYun | CD = 0.81e-3| | ShapeNet-34 | Tsinghua Cloud / Google Drive / BaiDuYun | CD = 1.23e-3| | PCN | [Tsinghua Cloud] / [Google Drive] / [BaiDuYun](code:rc7p) | CD = 6.53e-3|
pip install -r requirements.txt
NOTE: PyTorch >= 1.7 and GCC >= 4.9 are required.
# Chamfer Distance
bash install.sh
The solution for a common bug in chamfer distance installation can be found in Issue #6
# PointNet++
pip install "git+https://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
Note: If you still get ModuleNotFoundError: No module named 'gridding'
or something similar then run these steps
1. cd into extensions/Module (eg extensions/gridding)
2. run `python setup.py install`
That will fix the ModuleNotFoundError
.
The details of our new ShapeNet-55/34 datasets and other existing datasets can be found in DATASET.md.
To inference sample(s) with pretrained model
python tools/inference.py \
${POINTR_CONFIG_FILE} ${POINTR_CHECKPOINT_FILE} \
[--pc_root <path> or --pc <file>] \
[--save_vis_img] \
[--out_pc_root <dir>] \
For example, inference all samples under demo/
and save the results under inference_result/
python tools/inference.py \
cfgs/PCN_models/AdaPoinTr.yaml ckpts/AdaPoinTr_PCN.pth \
--pc_root demo/ \
--save_vis_img \
--out_pc_root inference_result/ \
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>]
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
CUDA_VISIBLE_DEVICES=0 python KITTI_metric.py \
--vis <visualization_path>
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>]
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
MIT License
Our code is inspired by GRNet and mmdetection3d.
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 and Rao, Yongming and Wang, Ziyi and Liu, Zuyan and Lu, Jiwen and Zhou, Jie},
booktitle={ICCV},
year={2021}
}