{"id":13444020,"url":"https://github.com/raoyongming/PointGLR","last_synced_at":"2025-03-20T17:32:51.811Z","repository":{"id":44426286,"uuid":"250782654","full_name":"raoyongming/PointGLR","owner":"raoyongming","description":"[CVPR 2020] Global-Local Bidirectional Reasoning for Unsupervised Representation Learning of 3D Point Clouds","archived":false,"fork":false,"pushed_at":"2020-08-10T06:37:12.000Z","size":41,"stargazers_count":116,"open_issues_count":3,"forks_count":17,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-08-01T03:45:48.073Z","etag":null,"topics":["3d-point-clouds","computer-vision","deep-learning","metric-learning","representation-learning","unsupervised-learning"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raoyongming.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-28T11:55:00.000Z","updated_at":"2024-07-10T10:19:17.000Z","dependencies_parsed_at":"2022-08-12T11:10:51.635Z","dependency_job_id":null,"html_url":"https://github.com/raoyongming/PointGLR","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raoyongming%2FPointGLR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raoyongming%2FPointGLR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raoyongming%2FPointGLR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raoyongming%2FPointGLR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raoyongming","download_url":"https://codeload.github.com/raoyongming/PointGLR/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221786132,"owners_count":16879965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-point-clouds","computer-vision","deep-learning","metric-learning","representation-learning","unsupervised-learning"],"created_at":"2024-07-31T03:02:16.813Z","updated_at":"2024-10-28T05:31:49.694Z","avatar_url":"https://github.com/raoyongming.png","language":"Python","funding_links":[],"categories":["Python",":open_hands: Contributing"],"sub_categories":[],"readme":"PointGLR\n===\nThis repository contains the PyTorch implementation for paper __Global-Local Bidirectional Reasoning for Unsupervised Representation Learning of 3D Point Clouds__ (CVPR 2020) \\[[arXiv](https://arxiv.org/abs/2003.12971)\\]\n\n![overview](https://raoyongming.github.io/files/fig_PointGLR.jpg)\n\nIf you find our work useful in your research, please consider citing:\n```\n@inproceedings{rao2020global,\n  title={Global-Local Bidirectional Reasoning for Unsupervised Representation Learning of 3D Point Clouds},\n  author={Rao, Yongming and Lu, Jiwen and Zhou, Jie},\n  booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},\n  year={2020}\n}\n```\n\n\n## Usage\n\n### Requirement\n\n- Python 3\n- Pytorch 0.4\n- CMake \u003e 2.8\n\n**Note**: The code is not not compatible with Pytorch \u003e= 1.0 due to the C++/CUDA extensions. \n\n### Building C++/CUDA Extensions for PointNet++\n\n```\nmkdir build \u0026\u0026 cd build\ncmake .. \u0026\u0026 make\n```\n\n### Dataset Preparation\n\n#### ModelNet\n\n- Download ModelNet point clouds (XYZ and normal):\n```\nmkdir dataset \u0026\u0026 cd dataset\nwget https://shapenet.cs.stanford.edu/media/modelnet40_normal_resampled.zip\nunzip modelnet40_normal_resampled.zip\n```\n- Preprocess dataset:\n```\nCUDA_VISIBLE_DEVICES=0 python tools/prepare_modelnet.py\n```\n\n#### ScanNet\n\nYou can download our prepared ScanNet dataset for object classification from [Google Drive](https://drive.google.com/file/d/176bUICMaEaDxoK4greUxV-3oseJJJ1v0/view?usp=sharing) and move the uncompressed data folder to `dataset/scannet`. The data structure should be:\n```\ndataset/scannet\n├── train_files.txt\n├── test_files.txt\n├── train_0.h5\n...\n├── test_0.h5\n...\n```\n\n#### ScanObjectNN\n\nThe ScanObjectNN dataset can be found [here](https://github.com/hkust-vgd/scanobjectnn). You can download the `h5_files.zipped` and move the uncompressed data folder to `dataset/ScanObjectNN`. The data sturcture should be:\n```\ndataset/ScanObjectNN\n├── main_split\n|  └── training_objectdataset.h5\n|  ...\n├── main_split_nobg\n|  └── training_objectdataset.h5\n|  ...\n...\n```\n\n### Training \u0026 Evaluation\nTo train an SSG PointNet++ model on ModelNet:\n```\nbash train.sh exp_name pointnet2 modelnet\n```\nTo train an SSG RSCNN model on ModelNet:\n```\nbash train.sh exp_name pointnet2 modelnet\n```\nYou can  modify `multiplier` in `cfgs/config.yaml` to train larger models. As a reference, the unsupervisedly trained 1x SSG PointNet++ and 1x SSG RSCNN models should have around 92.2% accuracy on ModelNet40. By increasing channel width (4x~5x), our best PointNet++ and RSCNN models achieved around 93.0% accuracy. The results might vary by 0.2%~0.5% between identical runs due to different random seed.\n\nTo obtain the results on ScanNet:\n```\nbash train.sh exp_name pointnet2 scannet\n```\nTo obtain the results on ScanObjectNN:\n```\nbash train.sh exp_name pointnet2 scanobjectnn\n```\nNote that for experiments on ScanNet and ScanObjectNN, the feature extraction network is still trained on ModelNet. We only train the Linear SVM classifier on the corresponding dataset to obtain the classification results.  \n## Acknowledgement\n\nThe code is based on [Relation-Shape CNN](https://github.com/Yochengliu/Relation-Shape-CNN) and [Pointnet2_PyTorch](https://github.com/erikwijmans/Pointnet2_PyTorch).\n\n## Contact\nIf you have any questions about our work, please contact \u003craoyongming95@gmail.com\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraoyongming%2FPointGLR","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraoyongming%2FPointGLR","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraoyongming%2FPointGLR/lists"}