{"id":15908426,"url":"https://github.com/hardikdava/nerf","last_synced_at":"2025-04-03T00:22:39.192Z","repository":{"id":183013404,"uuid":"667885410","full_name":"hardikdava/NeRF","owner":"hardikdava","description":null,"archived":false,"fork":false,"pushed_at":"2023-08-07T09:23:24.000Z","size":59,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-08T14:30:06.708Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/hardikdava.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":"2023-07-18T14:17:29.000Z","updated_at":"2023-07-22T10:57:38.000Z","dependencies_parsed_at":"2024-10-28T11:56:38.393Z","dependency_job_id":null,"html_url":"https://github.com/hardikdava/NeRF","commit_stats":null,"previous_names":["hardikdava/nerf"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardikdava%2FNeRF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardikdava%2FNeRF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardikdava%2FNeRF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardikdava%2FNeRF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hardikdava","download_url":"https://codeload.github.com/hardikdava/NeRF/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246912526,"owners_count":20853873,"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-10-06T14:21:27.526Z","updated_at":"2025-04-03T00:22:39.166Z","avatar_url":"https://github.com/hardikdava.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NeRF (Neural Radiance Fields)\n\nThis repository is an implementation of NeRF based on pytorch. It has capability of easy to integrate other models as well.  Some of the key features are as following.\n\n - Easy installation for developers \n - Easy deployment using onnx-runtime (No framework needed, depends on model) \n - Integrate other models based on core modules.\n - Export models to various format e.g. onnx, openvino, tensorrt,\n   coreml, etc.\n - Experiment management\n\n\n## Download Sample Data:\n\n```bash\nsh ./scripts/download_example_data.sh\n```\n\n## Installation\n\nYou can install the package using pip\n\n```bash\npip install git+https://github.com/hardikdava/NeRF.git\n```\n\nor for development\n\n```bash\npip install -e \".[dev]\"\n```\n\n\n### Usage:\n\n**Command line usage:**\n```bash\nnerf mode=predict model= \"\" video=\"\" output=\"\" resolution=800\n\nnerf mode=train model= \"\" data=\"\" output=\"\" resolution=800\n\nnerf mode=val model= \"\" data=\"\" output=\"\" resolution=800\n\nnerf mode=export model= \"\" output=\"\" fp16=True resolution=800 format=onnx\n```\n\n**Python usage:**\n```python\nfrom nerf import nerf\nmodel = nerf(model=\"\")\nmodel.train(data=\"\", resolution=800, output_dir=\"\")\nmodel.val(data=\"\", resolution=800, output_dir=\"\")\nmodel.export(data=\"\", resolution=800, output_dir=\"\", format=\"onnx\")\nmodel.predict(data=\"\", resolution=800, output_dir=\"\")\n```\n\n## Tools:\n\nIf you have video sequence or sequence of frames from any camera source then prior to run `NeRF`, it is suggested to get camera poses between camera frames. It can be achieved by using colmap though it can be based on model type. Some model do not require camera poses.\n\n- Download [colmap2nerf](https://github.com/NVlabs/instant-ngp/blob/master/scripts/colmap2nerf.py)\n- Generate camera poses from video sequence. This will also extract frames as per given argument.\n\n\n\n## Deployment:\n\nPlease visit [deployment guideline](https://github.com/hardikdava/NeRF-Exp/blob/main/DEPLOYMENT.md) for integrating models into production.\n\n\n## Project Structure:\n\n```bash\n.\n├── configs\n│   ├── default.yaml  # Default settings here\n│   └── hyps.yaml  # hypermeter configurations\n├── data  # Dataset Configurations File\n│   └── lego.yaml\n├── DEPLOYMENT.md\n├── examples\n│   └── onnx_infer.py  # ONNX-Runtime example API for non-trainable models\n├── experiments # Experiments logs directory for experiment management\n├── LICENSE\n├── nerf\n│   ├── dataset \n│   │   ├── data_loader.py\n│   │   └── __init__.py\n│   ├── engine  \n│   │   ├── exporter.py\n│   │   ├── __init__.py\n│   │   ├── predictor.py\n│   │   ├── trainer.py\n│   │   └── validator.py\n│   ├── __init__.py\n│   ├── models  # Add new models here\n│   │   ├── instant-nerf.yaml\n│   │   └── nerf.yaml\n│   ├── nerf.py  # Entry point for usage\n│   ├── nn  # All machine learning functions here\n│   │   ├── __init__.py\n│   │   ├── loss.py  # Loss functions \n│   │   ├── modules\n│   │   │   └── common.py  \n│   │   └── nerf_model.py  # model creation and weights loading, scalable for quantization\n│   └── utils\n│       ├── colmap_utils.py  # functions from colmap\n│       ├── file.py\n│       ├── __init__.py\n│       ├── logger.py  # Add new loggers here e.g. clearml, wandb, neptune, etc\n│       ├── metric.py  # Evaluation metrics\n│       ├── torch_utils.py \n│       └── visualizer.py  # Different visualizer e.g. blender, Open3D, Opencv etc\n├── README.md\n├── requirements.txt   \n├── scripts\n│   └── download_example_data.sh  # Data download scripts\n├── setup.py \n├── test\n│   └── hello_test.py # Tests files\n└── tools\n    ├── generate_mesh.py # from depth images to mesh file\n    └── images_to_pose_colmap.py # from video frames to camera pose\n```\n\n## Model File:\n\n```\nmodel_depth: d\nmodel_width: w\nresolution: r\nactivation: nn.ReLU()\nquantize_aware_training: False\ndensity_head:\n\t-[[mlp, [previous_node, next_node],[in, out, pad, stride]],\n\t [mlp, [previous_node, next_node],[in, out, pad, stride]],\n\t [mlp, [previous_node, next_node],[in, out, pad, stride]],\n\t [mlp, [previous_node, next_node],[in, out, pad, stride]],\n\t [mlp, [previous_node, next_node],[in, out, pad, stride]],\n\t [mlp, [previous_node, next_node],[in, out, pad, stride]],\n\t [mlp, [previous_node, next_node],[in, out, pad, stride]],\n\t [mlp, [previous_node, next_node],[in, out, pad, stride]]]\n\ncolor_head:\n\t-[[mlp, [previous_node, next_node],[in, out, pad, stride]],\nmodel:\n\t- [density_head, color_head]\n\n```\n\n## LICENSE:\n\n## Citations:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhardikdava%2Fnerf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhardikdava%2Fnerf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhardikdava%2Fnerf/lists"}