{"id":18573550,"url":"https://github.com/prs-eth/dynamic-lidar-resimulation","last_synced_at":"2025-04-10T07:32:08.367Z","repository":{"id":211837773,"uuid":"722603749","full_name":"prs-eth/Dynamic-LiDAR-Resimulation","owner":"prs-eth","description":"[CVPR 2024, highlight] Dynamic LiDAR Re-simulation using Compositional Neural Fields","archived":false,"fork":false,"pushed_at":"2024-05-15T13:02:59.000Z","size":5784,"stargazers_count":84,"open_issues_count":1,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-24T18:11:21.919Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prs-eth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-11-23T14:00:15.000Z","updated_at":"2025-03-11T08:06:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"9c91a91f-d749-4a86-925f-cdb7f83f2295","html_url":"https://github.com/prs-eth/Dynamic-LiDAR-Resimulation","commit_stats":null,"previous_names":["prs-eth/dynamic-lidar-resimulation"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prs-eth%2FDynamic-LiDAR-Resimulation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prs-eth%2FDynamic-LiDAR-Resimulation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prs-eth%2FDynamic-LiDAR-Resimulation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prs-eth%2FDynamic-LiDAR-Resimulation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prs-eth","download_url":"https://codeload.github.com/prs-eth/Dynamic-LiDAR-Resimulation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248176441,"owners_count":21060065,"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":[],"created_at":"2024-11-06T23:10:49.622Z","updated_at":"2025-04-10T07:32:07.366Z","avatar_url":"https://github.com/prs-eth.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Dynamic LiDAR Re-simulation using Compositional Neural Fields\nThis repository represents the official implementation of the paper:\n\n### [Dynamic LiDAR Re-simulation using Compositional Neural Fields](https://arxiv.org/abs/2312.05247)\n\n[Hanfeng Wu\u003csup\u003e1,2\u003c/sup\u003e](https://www.linkedin.com/in/hanfeng-wu-089602203/), [Xingxing Zuo\u003csup\u003e2\u003c/sup\u003e](https://xingxingzuo.github.io/), [Stefan Leutenegger\u003csup\u003e2\u003c/sup\u003e](https://www.professoren.tum.de/leutenegger-stefan), [Or Litany\u003csup\u003e3\u003c/sup\u003e](https://orlitany.github.io/), [Konrad Schindler\u003csup\u003e1\u003c/sup\u003e](https://prs.igp.ethz.ch/group/people/person-detail.schindler.html), [Shengyu Huang\u003csup\u003e1\u003c/sup\u003e](https://shengyuh.github.io) \\\n\u003csup\u003e1\u003c/sup\u003e ETH Zurich | \u003csup\u003e2\u003c/sup\u003e Technical University of Munich | \u003csup\u003e3\u003c/sup\u003e Technion | \u003csup\u003e4\u003c/sup\u003e NVIDIA\n\n## Introduction\nThis code consists of two parts. The folder `DyNFL` contains our nerfstudio-based DyNFL implementation. The folder `WaymoPreprocessing` contains the preprocessing scripts to generate dataset used for training and evaluation.\n\n## Enrionment setup\nThis code has been tested on \n- Python 3.10.10, PyTorch 1.13.1, CUDA 11.6, Nerfstudio 0.3.4, GeForce RTX 3090/GeForce GTX 1080Ti\n\nTo create a conda environment and install the required dependences, please run:\n```shell\nconda create -n \"dynfl\" python=3.10.10\nconda activate dynfl\n```\nThen install nerfstudio from [official guidelines](https://docs.nerf.studio/quickstart/installation.html) in your conda environment.\n\nAfter intalling nerfstudio, install DyNFL and required packages as follows:\n```\ngit clone git@github.com:prs-eth/DyNFL-Dynamic-LiDAR-Re-simulation-using-Compositional-Neural-Fields.git\ncd DyNFL\npip install -e .\n\npip install NFLStudio/ChamferDistancePytorch/chamfer3D/\npip install NFLStudio/raymarching/\n```\n\n## Prepare Datasets\nPlease refer to [WaymoPreprocessing](./WaymoPreprocessing).\n\n## Training\nAfter generating the datasets, please run\n```shell\nns-train NFLStudio --pipeline.datamanager.dataparser-config.context_name \u003ccontext_name\u003e --pipeline.datamanager.dataparser-config.root_dir \u003cpath_to_your_preprocessed_data_dynamic\u003e --experiment_name \u003cyour_experiment_name\u003e\n```\nYou can set the batch-size in [NFLDataManagerConfig](./DyNFL/NFLStudio/datamanager.py) or pass it as arguments along with the `ns-train` command\n## Evaluation and visulization\nAfter training, a folder containing weights will be saved in your working folder as `outputs/\u003cyour_experiment_name\u003e/NFLStudio/\u003ctime_stamp\u003e/nerfstudio_models`\n\n\n### Quantitative results\nIn order to get quantitative results, please uncomment in [tester](./DyNFL/NFLStudio/tester.py)\n```\n# pipeline.get_numbers() # get numbers of the LiDARs\n```\nand run\n```\ncd NFLStudio\npython tester.py --context_name \u003ccontext_name\u003e --model_dir \u003cmodel_dir\u003e\n```\n\nfor example\n```\npython tester.py --context_name \"1083056852838271990_4080_000_4100_000\" --model_dir \"outputs/\u003cyour_experiment_name\u003e/NFLStudio/\u003ctime_stamp\u003e/nerfstudio_modelss\"\n```\n\n### Reproduce our results\nWe provide you the pretrained model weights of 4 Waymo Dynamic scenes to reproduce our results, the weights are avaliable [here](https://mega.nz/file/R7N3nRJT#R_avxijtzFYtxyEM_ExxSHH8AiQdA2gE8-AGxmHaxtg). Unpack the pretrained weights under `DyNFL/NFLStudio/`\nand run \n\n```\ncd NFLStudio\nbash test.sh\n```\n\n### Visulization\nTo visulize the results, uncomment in [tester](./DyNFL/NFLStudio/tester.py)\n```\n# pipeline.get_pcd(context_name) # get pcd to display\n```\nand run\n```\ncd NFLStudio\npython tester.py --context_name \u003ccontext_name\u003e --model_dir \u003cmodel_dir\u003e\n```\n\nAfter that, you will have a folder in `NFLStudio` called `pcd_out`.\n\nreplace the `dir` and `context_name` with `path/to/pcd_out` and \u003ccontext_name\u003e in [NFLStudio/render_full_lidar_inputs.py](./DyNFL/NFLStudio/render_full_lidar_inputs.py)\n\nand run\n```\ncd NFLStudio\npython render_full_lidar_inputs.py\n```\nIt will generate two windows like follows:\n![vis](figs/vis.png)\n## Citation\n```bibtex\n@inproceedings{Wu2023dynfl,\n        title={Dynamic LiDAR Re-simulation using Compositional Neural Fields},\n        author={Wu, Hanfeng and Zuo, Xingxing and Leutenegger, Stefan and Litany, Or and Schindler, Konrad and Huang, Shengyu},\n        booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},\n        year      = {2024},\n    }\n```\n## Acknowledgement\nWe use the nerfstudio framework in this project, we thank the contributors for their open-sourcing and maintenance of the work. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprs-eth%2Fdynamic-lidar-resimulation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprs-eth%2Fdynamic-lidar-resimulation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprs-eth%2Fdynamic-lidar-resimulation/lists"}