{"id":17296126,"url":"https://github.com/henzler/neuraltexture","last_synced_at":"2025-10-10T06:32:05.550Z","repository":{"id":45827665,"uuid":"245241602","full_name":"henzler/neuraltexture","owner":"henzler","description":"Learning a Neural 3D Texture Space from 2D Exemplars [CVPR 2020]","archived":false,"fork":false,"pushed_at":"2024-07-25T10:58:40.000Z","size":1743,"stargazers_count":108,"open_issues_count":9,"forks_count":20,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-01-20T08:08:47.084Z","etag":null,"topics":["computer-graphics","computer-vision","deep-learning","machine-learning","texture-synthesis"],"latest_commit_sha":null,"homepage":"https://geometry.cs.ucl.ac.uk/projects/2020/neuraltexture/","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/henzler.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":"2020-03-05T18:43:34.000Z","updated_at":"2024-08-19T08:50:09.000Z","dependencies_parsed_at":"2024-11-08T04:00:39.922Z","dependency_job_id":"b2c4716b-3d9a-4ed7-89ec-01742c630bfa","html_url":"https://github.com/henzler/neuraltexture","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/henzler%2Fneuraltexture","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henzler%2Fneuraltexture/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henzler%2Fneuraltexture/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henzler%2Fneuraltexture/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/henzler","download_url":"https://codeload.github.com/henzler/neuraltexture/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235931730,"owners_count":19068122,"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":["computer-graphics","computer-vision","deep-learning","machine-learning","texture-synthesis"],"created_at":"2024-10-15T11:12:03.570Z","updated_at":"2025-10-10T06:32:00.187Z","avatar_url":"https://github.com/henzler.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Neural Texture\n\nOfficial code repository for the paper:\n\n**Learning a Neural 3D Texture Space from 2D Exemplars [CVPR, 2020]**\n\n[Henzler](https://henzler.github.io), [J. Mitra](http://www0.cs.ucl.ac.uk/staff/n.mitra/), [Ritschel](http://www.homepages.ucl.ac.uk/~ucactri/)\n\n**[[Paper](https://geometry.cs.ucl.ac.uk/projects/2020/neuraltexture/paper_docs/neuraltexture.pdf)] [[Project page](https://geometry.cs.ucl.ac.uk/projects/2020/neuraltexture/)]**\n\n## Data\n\nWe downloaded all our textures from [https://www.textures.com/](https://www.textures.com/). \nDue to licensing reasons we cannot provide the data for training, however, we provide pre-trained models under `trained_models` for the classes `wood, grass, marble, rust_paint`.\n\n#### Inference\nIn order to evaluate textures, add the desired texture to the corresponding folder under `datasets/\u003cclass_name\u003e/test` and use one of the pre-trained models under `trained_models/` and run the evaluation (see instructions below). We already provide some exemplars.\n\n#### Training\nFor training you will need to provide data sets under `datasets/\u003cyour_folder\u003e` and provide two subdirectories: `train` and `test`.\nWe provide `test` exemplars for `wood`, `grass`, `marble` and `rust_paint`. If you would like to train using these classes please add a `train` folder containing training data.\n#####\n\n## Prerequisites\n\n - Ubuntu 18.04\n - cuDNN 7\n - CUDA 10.1\n - python3+\n - pyTorch 1.4\n - Download pretrained models (optional)\n\n### Install dependencies\n \n\n```\ncd code/\npip install -r requirements.txt\n\ncd custom_ops/noise\n# build cuda code for noise sampler\nTORCH_CUDA_ARCH_LIST=\u003cdesired version\u003e python setup.py install\n```\n\n### Download pre-trained models\n\n```\nsh download_pretrained_models.sh\n```\n\n#### Logs\n\nTo visualise pre-trained training logs run the following:\n```\ntensorboard --logdir=./trained_models\n```\n\n## Usage\n\n### Config file\n\nThe config files are located in `code/configs/neural_texture`. In the following we give an explanation for the \nmost important variables:\n```\ndim: 2 # choose between 2 and 3 for 2D and 3D.\ndataset:\n  path: '../datasets/wood' # set path \n  use_single: -1 # -1 = train entire data set | 0,1,2,... = for single training\n```  \n\n### Training\n    \n```\ncd code/\npython train_neural_texture.py --config_path=\u003cpath/to/config\u003e --job_id=\u003cyour_id\u003e\n```\n\nThe default `config_path` is set to `configs/neural_texture/config_default.yaml`. The default `job_id` is set to `1`.\n\n### Inference\n\n```\ncd code/\npython test_neural_texture.py --trained_model_path=path/to/models\n```\n\nThe default `trained_model_path` is set to `../trained_models`. The results are saved under `trained_model_path/{model}/results`\n\n\n## Bibtex\n\nIf you use the code, please cite our paper:\n\n```\n@inproceedings{henzler2020neuraltexture,\n    title={Learning a Neural 3D Texture Space from 2D Exemplars},\n    author={Henzler, Philipp and Mitra, Niloy J and Ritschel, Tobias},\n    booktitle={The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}\n    month={June},\n    year={2020}\n}\n```\n\n\n##### Side Note\nUnlike reported in the paper the encoder network in this implementation uses a ResNet architecture as it stabilises training. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenzler%2Fneuraltexture","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhenzler%2Fneuraltexture","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenzler%2Fneuraltexture/lists"}