{"id":26878823,"url":"https://github.com/colin97/msn-point-cloud-completion","last_synced_at":"2025-04-07T13:04:59.616Z","repository":{"id":124326454,"uuid":"229359486","full_name":"Colin97/MSN-Point-Cloud-Completion","owner":"Colin97","description":"Morphing and Sampling Network for Dense Point Cloud Completion (AAAI2020)","archived":false,"fork":false,"pushed_at":"2022-04-08T23:05:52.000Z","size":5700,"stargazers_count":425,"open_issues_count":11,"forks_count":57,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-31T12:36:38.553Z","etag":null,"topics":["3d-reconstruction","auction-algorithm","cuda","earth-mover-distance","earth-movers-distance","minimum-spanning-tree","point-cloud","point-cloud-completion","point-cloud-processing","shape-completion"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Colin97.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-21T01:14:23.000Z","updated_at":"2025-03-29T07:18:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"b41d7b88-e02b-4d6b-87b7-eb756c4bcdfd","html_url":"https://github.com/Colin97/MSN-Point-Cloud-Completion","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/Colin97%2FMSN-Point-Cloud-Completion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Colin97%2FMSN-Point-Cloud-Completion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Colin97%2FMSN-Point-Cloud-Completion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Colin97%2FMSN-Point-Cloud-Completion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Colin97","download_url":"https://codeload.github.com/Colin97/MSN-Point-Cloud-Completion/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247657276,"owners_count":20974344,"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-reconstruction","auction-algorithm","cuda","earth-mover-distance","earth-movers-distance","minimum-spanning-tree","point-cloud","point-cloud-completion","point-cloud-processing","shape-completion"],"created_at":"2025-03-31T12:29:40.710Z","updated_at":"2025-04-07T13:04:59.605Z","avatar_url":"https://github.com/Colin97.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## MSN: Morphing and Sampling Network for Dense Point Cloud Completion\n\n[[paper]](http://cseweb.ucsd.edu/~mil070/projects/AAAI2020/paper.pdf) [[data]](https://drive.google.com/drive/folders/1X143kUwtRtoPFxNRvUk9LuPlsf1lLKI7?usp=sharing)\n\nMSN is a learning-based shape completion method which can preserve the known structures and generate dense and evenly distributed point clouds. See our AAAI 2020 [paper](http://cseweb.ucsd.edu/~mil070/projects/AAAI2020/paper.pdf) for more details.\n\nIn this project, we also provide an implementation for the Earth Mover's Distance (EMD) of point clouds, which is based on the auction algorithm and only needs $O(n)$ memory.\n\n![](/teaser.png)\n*with 32,768 points after completion*\n\n\n### Usage\n\n#### 1) Envrionment \u0026 prerequisites\n\n- Pytorch 1.2.0\n- CUDA 10.0\n- Python 3.7\n- [Visdom](https://github.com/facebookresearch/visdom)\n- [Open3D](http://www.open3d.org/docs/release/index.html#python-api-index)\n\n#### 2) Compile\n\nCompile our extension modules:  \n\n    cd emd\n    python3 setup.py install\n    cd expansion_penalty\n    python3 setup.py install\n    cd MDS\n    python3 setup.py install\n\n#### 3) Download data and trained models\n\nDownload the data and trained models from [here](https://drive.google.com/drive/folders/1X143kUwtRtoPFxNRvUk9LuPlsf1lLKI7?usp=sharing).  We don't provide the partial point clouds of the training set due to the large size. If you want to train the model, you can generate them with the [code](https://github.com/wentaoyuan/pcn/tree/master/render) and [ShapeNetCore.v1](https://shapenet.org/). We generate 50 partial point clouds for each CAD model.\n\n#### 4) Train or validate\n\nRun `python3 val.py` to validate the model or `python3 train.py` to train the model from scratch.\n\n### EMD\n\nWe provide an EMD implementation for point cloud comparison, which only needs $O(n)$ memory and thus enables dense point clouds  (with 10,000 points or over) and large batch size. It is based on an approximated algorithm (auction algorithm) and cannot guarantee a (but near) bijection assignment. It employs a parameter $\\epsilon$ to balance the error rate and the speed of convergence. Smaller $\\epsilon$ achieves more accurate results, but needs a longer time for convergence. The time complexity is $O(n^2k)$, where $k$ is the number of iterations. We set a $\\epsilon = 0.005, k = 50$ during training and a $\\epsilon = 0.002, k = 10000$ during testing. Please refer to`emd/README.md` for more details.\n\n### Citation\n\nIf you find our work useful for your research, please cite:\n```\n@article{liu2019morphing,\n  title={Morphing and Sampling Network for Dense Point Cloud Completion},\n  author={Liu, Minghua and Sheng, Lu and Yang, Sheng and Shao, Jing and Hu, Shi-Min},\n  journal={arXiv preprint arXiv:1912.00280},\n  year={2019}\n}\n```\n\n### License\n\nThis project Code is released under the Apache License 2.0 (refer to the LICENSE file for details).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcolin97%2Fmsn-point-cloud-completion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcolin97%2Fmsn-point-cloud-completion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcolin97%2Fmsn-point-cloud-completion/lists"}