{"id":13442825,"url":"https://github.com/ThibaultGROUEIX/AtlasNet","last_synced_at":"2025-03-20T15:31:11.125Z","repository":{"id":38551522,"uuid":"116996379","full_name":"ThibaultGROUEIX/AtlasNet","owner":"ThibaultGROUEIX","description":"This repository contains the source codes for the paper \"AtlasNet: A Papier-Mâché Approach to Learning 3D Surface Generation \". The network is able to synthesize a mesh (point cloud + connectivity) from a low-resolution point cloud, or from an image.","archived":false,"fork":false,"pushed_at":"2022-10-26T16:26:54.000Z","size":9327,"stargazers_count":660,"open_issues_count":6,"forks_count":116,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-08-01T03:42:02.408Z","etag":null,"topics":["3d","3d-deep-learning","computer-vision","cvpr2018","geometry-processing","pytorch"],"latest_commit_sha":null,"homepage":"http://imagine.enpc.fr/~groueixt/atlasnet/","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/ThibaultGROUEIX.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":"2018-01-10T18:40:02.000Z","updated_at":"2024-07-30T04:54:07.000Z","dependencies_parsed_at":"2022-08-09T04:32:09.162Z","dependency_job_id":null,"html_url":"https://github.com/ThibaultGROUEIX/AtlasNet","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThibaultGROUEIX%2FAtlasNet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThibaultGROUEIX%2FAtlasNet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThibaultGROUEIX%2FAtlasNet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThibaultGROUEIX%2FAtlasNet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ThibaultGROUEIX","download_url":"https://codeload.github.com/ThibaultGROUEIX/AtlasNet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221772569,"owners_count":16878131,"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","3d-deep-learning","computer-vision","cvpr2018","geometry-processing","pytorch"],"created_at":"2024-07-31T03:01:51.754Z","updated_at":"2024-10-28T03:31:10.456Z","avatar_url":"https://github.com/ThibaultGROUEIX.png","language":"Python","funding_links":[],"categories":["Python","单目图像"],"sub_categories":["Project with code"],"readme":"## AtlasNet [[Project Page]](http://imagine.enpc.fr/~groueixt/atlasnet/) [[Paper]](https://arxiv.org/abs/1802.05384) [[Talk]](http://imagine.enpc.fr/~groueixt/atlasnet/atlasnet_slides_spotlight_CVPR.pptx)\n\n**AtlasNet: A Papier-Mâché Approach to Learning 3D Surface Generation** \u003cbr\u003e\nThibault Groueix,  Matthew Fisher, Vladimir G. Kim , Bryan C. Russell, Mathieu Aubry  \u003cbr\u003e\nIn [CVPR, 2018](http://cvpr2018.thecvf.com/).\n\n:rocket: New branch : [AtlasNet + Shape Reconstruction by Learning Differentiable Surface Representations](https://github.com/ThibaultGROUEIX/AtlasNet/tree/jacobian_regularization)\n\n\u003cimg src=\"doc/pictures/chair.png\" alt=\"chair.png\" width=\"35%\" /\u003e \u003cimg src=\"doc/pictures/chair.gif\" alt=\"chair.gif\" width=\"32%\" /\u003e\n\n\n\n\n\n### Install\n\nThis implementation uses Python 3.6, [Pytorch](http://pytorch.org/), [Pymesh](https://github.com/PyMesh/PyMesh), Cuda 10.1. \n```shell\n# Copy/Paste the snippet in a terminal\ngit clone --recurse-submodules https://github.com/ThibaultGROUEIX/AtlasNet.git\ncd AtlasNet \n\n#Dependencies\nconda create -n atlasnet python=3.6 --yes\nconda activate atlasnet\nconda install pytorch==1.7.1 torchvision==0.8.2 cudatoolkit=10.1 -c pytorch --yes\npip install --user --requirement  requirements.txt # pip dependencies\n```\n\n\n\n##### Optional : Compile Chamfer (MIT) + Metro Distance (GPL3 Licence)\n```shell\n# Copy/Paste the snippet in a terminal\npython auxiliary/ChamferDistancePytorch/chamfer3D/setup.py install #MIT\ncd auxiliary\ngit clone https://github.com/ThibaultGROUEIX/metro_sources.git\ncd metro_sources; python setup.py --build # build metro distance #GPL3\ncd ../..\n```\n\n### A note on data.\n\nData download should be automatic. However, due to the new google drive traffic caps, you may have to download manually. If you run into an error running the demo,\nyou can refer to #61. \n\nYou can manually download the data from three sources (there are the same) :\n* Google drive : https://drive.google.com/drive/folders/1If_-t0Aw9Zps-gj5ttgaMSTqRwYms9Ag?usp=sharing\n* Kaggle : https://www.kaggle.com/thibeix/atlasnet-data\n* NextCloud : https://cloud.enpc.fr/s/z9TxRcxGgeYGDJ4\n\nPlease make sure to unzip the archives in the right places :\n\n```shell\ncd AtlasNet\nmkdir data\nunzip ShapeNetV1PointCloud.zip -d ./data/\nunzip ShapeNetV1Renderings.zip -d ./data/\nunzip metro_files.zip -d ./data/\nunzip trained_models.zip -d ./training/\n```\n### Usage\n\n\n* **[Demo](./doc/demo.md)** :    ```python train.py --demo```\n* **[Training](./doc/training.md)** :  ```python train.py --shapenet13```  *Monitor on  http://localhost:8890/*\n* \u003cdetails\u003e\u003csummary\u003e Latest Refacto 12-2019  \u003c/summary\u003e\n  - [x] Factorize Single View Reconstruction and autoencoder in same class \u003cbr\u003e\n  - [x] Factorise Square and Sphere template in same class\u003cbr\u003e\n  - [x] Add latent vector as bias after first layer(30% speedup) \u003cbr\u003e\n  - [x] Remove last th in decoder \u003cbr\u003e\n  - [x] Make large .pth tensor with all pointclouds in cache(drop the nasty Chunk_reader) \u003cbr\u003e\n  - [x] Make-it multi-gpu \u003cbr\u003e\n  - [x] Add netvision visualization of the results \u003cbr\u003e\n  - [x] Rewrite main script object-oriented  \u003cbr\u003e\n  - [x] Check that everything works in latest pytorch version \u003cbr\u003e\n  - [x] Add more layer by default and flag for the number of layers and hidden neurons \u003cbr\u003e\n  - [x] Add a flag to generate a mesh directly \u003cbr\u003e\n  - [x] Add a python setup install \u003cbr\u003e\n  - [x] Make sure GPU are used at 100% \u003cbr\u003e\n  - [x] Add f-score in Chamfer + report f-score \u003cbr\u003e\n  - [x] Get rid of shapenet_v2 data and use v1! \u003cbr\u003e\n  - [x] Fix path issues no more sys.path.append \u003cbr\u003e\n  - [x] Preprocess shapenet 55 and add it in dataloader \u003cbr\u003e\n  - [x] Make minimal dependencies \u003cbr\u003e\n  \u003c/details\u003e\n\n  \n\n### Quantitative Results \n\n\n| Method                 | Chamfer (*1) | Fscore (*2) | [Metro](https://github.com/ThibaultGROUEIX/AtlasNet/issues/34) (*3) | Total Train time (min) |\n| ---------------------- | ---- | ----   | ----- |-------     |\n| Autoencoder 25 Squares | 1.35 | 82.3%   | 6.82  | 731       |\n| Autoencoder 1 Sphere   | 1.35 | 83.3%   | 6.94  | 548    |\n| SingleView 25  Squares | 3.78 | 63.1% | 8.94 | 1422      |\n| SingleView 1 Sphere    | 3.76 | 64.4% |  9.01  | 1297      |\n\n\n  * (*1) x1000. Computed between 2500 ground truth points and 2500 reconstructed points. \n  * (*2) The threshold is 0.001\n  * (*3) x100. Metro is ran on unormalized point clouds (which explains a difference with the paper's numbers) \n\n\n### Related projects\n\n*  [Learning Elementary Structures](https://github.com/TheoDEPRELLE/AtlasNetV2)\n*  [3D-CODED](https://github.com/ThibaultGROUEIX/3D-CODED)\n*  [Cycle Consistent Deformations](https://github.com/ThibaultGROUEIX/CycleConsistentDeformation)\n\n\n\n\n\n### Citing this work\n\n```\n@inproceedings{groueix2018,\n          title={{AtlasNet: A Papier-M\\^ach\\'e Approach to Learning 3D Surface Generation}},\n          author={Groueix, Thibault and Fisher, Matthew and Kim, Vladimir G. and Russell, Bryan and Aubry, Mathieu},\n          booktitle={Proceedings IEEE Conf. on Computer Vision and Pattern Recognition (CVPR)},\n          year={2018}\n        }\n```\n\u003cp align=\"center\"\u003e\n  \u003cimg  src=\"doc/pictures/plane.gif\"\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FThibaultGROUEIX%2FAtlasNet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FThibaultGROUEIX%2FAtlasNet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FThibaultGROUEIX%2FAtlasNet/lists"}