|
Download neuralangelo-main/DATA_PROCESSING.md from asmadeyi/nerf: direct link, hf CLI and curl.
- Browser
- Download file 5.25 kB
-
https://huggingface.co/asmadeyi/nerf/resolve/main/neuralangelo-main/DATA_PROCESSING.md
- Command line
-
hf download hf://asmadeyi/nerf/neuralangelo-main/DATA_PROCESSING.md
-
curl -L -o DATA_PROCESSING.md https://huggingface.co/asmadeyi/nerf/resolve/main/neuralangelo-main/DATA_PROCESSING.md
5.25 kB
| # Data Preparation | |
| The following sections provide a step-by-step guide on how to convert a video to a json file that Neuralangelo parses. | |
| ## Prerequisites | |
| Initialize the COLMAP submodule: | |
| ```bash | |
| git submodule update --init --recursive | |
| ``` | |
| ## Self-captured video sequence | |
| To capture your own data, we recommend using a high-shutter speed to avoid motion blur (which is very common when using a phone camera). To follow the instructions below, you can download a toy example from the link: https://drive.google.com/file/d/1VJeWYNJEBK0MFIzHjI8xZzwf3_I3eLwH/view?usp=drive_link | |
| ### Preprocessing | |
| You can run the following command to preprocess your data: | |
| ```bash | |
| EXPERIMENT_NAME=toy_example | |
| PATH_TO_VIDEO=toy_example.MOV | |
| SKIP_FRAME_RATE=24 | |
| SCENE_TYPE=object # {outdoor,indoor,object} | |
| bash projects/neuralangelo/scripts/preprocess.sh ${EXPERIMENT_NAME} ${PATH_TO_VIDEO} ${SKIP_FRAME_RATE} ${SCENE_TYPE} | |
| ``` | |
| Alternatively, you can follow the steps below if you want more fine-grained control. | |
| 1. Convert video to images | |
| ```bash | |
| PATH_TO_VIDEO=toy_example.MOV | |
| SKIP_FRAME_RATE=30 | |
| bash projects/neuralangelo/scripts/run_ffmpeg.sh ${PATH_TO_VIDEO} ${SKIP_FRAME_RATE} | |
| ``` | |
| `PATH_TO_VIDEO`: path to video | |
| `SKIP_FRAME_RATE`: downsampling rate (recommended 10 for 24 fps captured videos) | |
| 2. Run COLMAP | |
| ```bash | |
| PATH_TO_IMAGES=toy_example_skip30 | |
| bash projects/neuralangelo/scripts/run_colmap.sh ${PATH_TO_IMAGES} | |
| ``` | |
| `PATH_TO_IMAGES`: path to extracted images | |
| After COLMAP finishes, the folder structure will look like following: | |
| ```bash | |
| PATH_TO_IMAGES | |
| |__ database.db (COLMAP databse) | |
| |__ raw_images (raw input images) | |
| |__ dense | |
| |____ images (undistorted images) | |
| |____ sparse (COLMAP correspondences, intrinsics and sparse point cloud) | |
| |____ stereo (COLMAP files for MVS) | |
| ``` | |
| `dense/images` will be the input for surface reconstruction. | |
| 3. Generate json file for data loading | |
| In this step, we define the bounding region for reconstruction and convert the COLMAP data to json format following Instant NGP. We strongly recommend you go to step 5 to validate the quality of the automatic bounding region extraction for improved performance. | |
| ```bash | |
| PATH_TO_IMAGES=toy_example_skip30 | |
| SCENE_TYPE=object # {outdoor,indoor,object} | |
| python3 projects/neuralangelo/scripts/convert_data_to_json.py --data_dir ${PATH_TO_IMAGES}/dense --scene_type ${SCENE_TYPE} | |
| ``` | |
| `PATH_TO_IMAGES`: path to extracted images | |
| 4. Config files | |
| Use the following to configure and generate your config files | |
| ```bash | |
| EXPERIMENT_NAME=toy_example | |
| SCENE_TYPE=object # {outdoor,indoor,object} | |
| python3 projects/neuralangelo/scripts/generate_config.py --experiment_name ${EXPERIMENT_NAME} --data_dir ${PATH_TO_IMAGES}/dense --scene_type ${SCENE_TYPE} --auto_exposure_wb | |
| ``` | |
| The config file will be generated as `projects/neuralangelo/configs/custom/{EXPERIMENT_NAME}.yaml`. | |
| To find more arguments and how they work: | |
| ```bash | |
| python3 projects/neuralangelo/scripts/generate_config.py -h | |
| ``` | |
| You can also manually adjust the parameters in the yaml file directly. | |
| 5. Inspect results in Blender (optional but recommended) | |
| For certain cases, the camera poses estimated by COLMAP could be wrong, and the bounding region estimation could be off. | |
| We offer some tools to to inspect the pre-processing results. Below are some options: | |
| - Blender: Download [Blender](https://www.blender.org/download/) and follow the instructions in our [add-on repo](https://github.com/mli0603/BlenderNeuralangelo). | |
| - This [Jupyter notebook](projects/neuralangelo/scripts/visualize_colmap.ipynb) (using K3D) can be helpful for visualizing the COLMAP results. | |
| ## DTU dataset | |
| - Please use respecting the license terms of the dataset. | |
| You can run the following command to download [the DTU dataset](https://roboimagedata.compute.dtu.dk/?page_id=36) that is preprocessed by NeuS authors and generate json files: | |
| ```bash | |
| PATH_TO_DTU=datasets/dtu # Modify this to be the DTU dataset root directory. | |
| bash projects/neuralangelo/scripts/preprocess_dtu.sh ${PATH_TO_DTU} | |
| ``` | |
| ## Tanks and Temples dataset | |
| - Please use respecting the license terms of the dataset. | |
| Download the data from [Tanks and Temples](https://tanksandtemples.org/download/) website. | |
| You will also need to download additional [COLMAP/camera/alignment](https://drive.google.com/file/d/1jAr3IDvhVmmYeDWi0D_JfgiHcl70rzVE/view?resourcekey=) and the images of each scene. | |
| The file structure should look like (you may need to move around the downloaded images): | |
| ``` | |
| tanks_and_temples | |
| ββ Barn | |
| β ββ Barn_COLMAP_SfM.log (camera poses) | |
| β ββ Barn.json (cropfiles) | |
| β ββ Barn.ply (ground-truth point cloud) | |
| β ββ Barn_trans.txt (colmap-to-ground-truth transformation) | |
| β ββ images (folder of images) | |
| β ββ 000001.png | |
| β ββ 000002.png | |
| β ... | |
| ββ Caterpillar | |
| β ββ ... | |
| ... | |
| ``` | |
| Run the following command to generate json files: | |
| ```bash | |
| PATH_TO_TNT=datasets/tanks_and_temples # Modify this to be the Tanks and Temples root directory. | |
| bash projects/neuralangelo/scripts/preprocess_tnt.sh ${PATH_TO_TNT} | |
| ``` | |