mirror of
https://github.com/nerfstudio-project/nerfstudio.git
synced 2026-11-16 04:43:52 +08:00
added basic download script (#410)
* basic script to download dataset * update docs
This commit is contained in:
1 parent
fd7d08b6fe
commit
416669d808
5 files changed
+94
-3
No files matched your search
+2
-1
@@ -12,6 +12,7 @@ build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
!scripts/downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
@@ -185,4 +186,4 @@ node_modules/
|
||||
scripts/colmap2nerf.py
|
||||
bash/
|
||||
nerfactory/ngp_pl/
|
||||
cache/
|
||||
cache/
|
||||
@@ -111,7 +111,13 @@ pytest tests
|
||||
|
||||
#### 2. Getting the data
|
||||
|
||||
Download the original [NeRF dataset](https://drive.google.com/drive/folders/128yBriW1IG_3NJ5Rp7APSTZsJqdJdfc1) and unfold it in the following format. This is for the blender dataset type. We support the major datasets and allow users to create their own dataset, described in detail [here](https://plenoptix-nerfactory.readthedocs-hosted.com/en/latest/tutorials/data/index.html).
|
||||
Download the original NeRF Blender dataset. We support the major datasets and allow users to create their own dataset, described in detail [here](https://plenoptix-nerfactory.readthedocs-hosted.com/en/latest/tutorials/data/index.html).
|
||||
|
||||
```
|
||||
python scripts/downloads/download_data.py --dataset=blender
|
||||
```
|
||||
|
||||
Use `--help` to view all currently available datasets. The resulting script should download and unpack the dataset as follows:
|
||||
|
||||
```
|
||||
|─ nerfactory/
|
||||
|
||||
@@ -48,7 +48,13 @@ pip install git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/to
|
||||
|
||||
# Downloading data
|
||||
|
||||
Download the original [NeRF dataset](https://drive.google.com/drive/folders/128yBriW1IG_3NJ5Rp7APSTZsJqdJdfc1) and unfold it in the following format. This is for the blender dataset type. We support the major datasets and allow users to create their own dataset, described in detail [here](data/creating_dataset.md).
|
||||
Download the original NeRF Blender dataset. We support the major datasets and allow users to create their own dataset, described in detail [here](https://plenoptix-nerfactory.readthedocs-hosted.com/en/latest/tutorials/data/index.html).
|
||||
|
||||
```
|
||||
python scripts/downloads/download_data.py --dataset=blender
|
||||
```
|
||||
|
||||
Use `--help` to view all currently available datasets. The resulting script should download and unpack the dataset as follows:
|
||||
|
||||
```
|
||||
|─ nerfactory/
|
||||
|
||||
@@ -19,6 +19,7 @@ dependencies = [
|
||||
"av==9.2.0",
|
||||
"black[jupyter]==22.3.0",
|
||||
"dcargs>=0.3.1",
|
||||
"gdown==4.5.1",
|
||||
"ninja==1.10.2.3",
|
||||
"functorch==0.2.1",
|
||||
"h5py>=2.9.0",
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
"""Download datasets"""
|
||||
import zipfile
|
||||
from pathlib import Path
|
||||
from typing import Literal
|
||||
|
||||
import dcargs
|
||||
import gdown
|
||||
|
||||
|
||||
def download_friends():
|
||||
"""Script ported from: https://github.com/ethanweber/sitcoms3D/blob/master/download_data.py"""
|
||||
data_filename_to_file_id = [
|
||||
("./data/human_data.zip", "1zk12qxnZbReKqdvy-JYp1jQn2QA3oJzz"),
|
||||
("./data/human_pairs.zip", "1927rnmJ3mWcjsj0afqawSto2IK2lLwmA"),
|
||||
("./data/sparse_reconstruction_and_nerf_data.zip", "1RmwDUAp1T4RkwZg1S_7L9JAViWtBZfAG"),
|
||||
]
|
||||
|
||||
disk_data_filename_to_file_id = [ # pylint: disable=unused-variable
|
||||
("./data/sparse_reconstruction_and_nerf_data/ELR-apartment-disk.zip", "1YcTwMv5PP0uqXYdN-Lp8k0WnXUdHBXrY"),
|
||||
("./data/sparse_reconstruction_and_nerf_data/Frasier-apartment-disk.zip", "1vPqplDv5rrFu5LrxTHbET0FiePTGi8zE"),
|
||||
(
|
||||
"./data/sparse_reconstruction_and_nerf_data/Friends-monica_apartment-disk.zip",
|
||||
"1yNpU4M44gIuWEaC5tSAOKy-A6KX8wTm8",
|
||||
),
|
||||
(
|
||||
"./data/sparse_reconstruction_and_nerf_data/HIMYM-red_apartment-disk.zip",
|
||||
"1m76i46YYlpDKvlx-Jn7qDDAvkOVVVmqF",
|
||||
),
|
||||
(
|
||||
"./data/sparse_reconstruction_and_nerf_data/Seinfeld-jerry_living_room-disk.zip",
|
||||
"1YFoV3Gd9asKsRarZvzRTYtri1755rBPx",
|
||||
),
|
||||
("./data/sparse_reconstruction_and_nerf_data/TAAHM-kitchen-disk.zip", "1QpF8kVGfgkqm_cDY5sY_E82BT8VOWL38"),
|
||||
(
|
||||
"./data/sparse_reconstruction_and_nerf_data/TBBT-big_living_room-disk.zip",
|
||||
"175BjkpxMAOt75ZVIjYpArxWpO8uRexgJ",
|
||||
),
|
||||
]
|
||||
|
||||
# !!! Large files !!! Only uncomment if you need the disk correspondences.
|
||||
# data_filename_to_file_id += disk_data_filename_to_file_id
|
||||
|
||||
for data_filename, file_id in data_filename_to_file_id:
|
||||
# Download the files
|
||||
url = f"https://drive.google.com/uc?id={file_id}"
|
||||
gdown.download(url, output=data_filename, quiet=False)
|
||||
with zipfile.ZipFile(data_filename, "r") as zip_ref:
|
||||
zip_ref.extractall(data_filename.replace(".zip", "").replace("-disk", ""))
|
||||
Path(data_filename).unlink(missing_ok=True)
|
||||
|
||||
|
||||
def download_blender():
|
||||
"""Download blender dataset and format accordingly"""
|
||||
url = "https://drive.google.com/uc?id=18JxhpWD-4ZmuFKLzKlAw-w5PpzZxXOcG"
|
||||
download_path = Path("data/blender_data.zip")
|
||||
gdown.download(url, output=str(download_path), quiet=False)
|
||||
with zipfile.ZipFile(download_path, "r") as zip_ref:
|
||||
zip_ref.extractall("data/")
|
||||
unzip_path = Path("data/nerf_synthetic")
|
||||
final_path = Path("data/blender")
|
||||
unzip_path.rename(final_path)
|
||||
download_path.unlink(missing_ok=True)
|
||||
|
||||
|
||||
def main(dataset: Literal["blender", "friends"]):
|
||||
"""Main download script to download all data"""
|
||||
save_dir = Path("data/")
|
||||
save_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
if dataset == "blender":
|
||||
download_blender()
|
||||
if dataset == "friends":
|
||||
download_friends()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
dcargs.cli(main)
|
||||
Reference in new issue
Block a user