Open source code for the paper of Neural Sparse Voxel Fields.

Related tags

Deep Learning NSVF
Overview

Neural Sparse Voxel Fields (NSVF)

Project Page | Video | Paper | Data

Photo-realistic free-viewpoint rendering of real-world scenes using classical computer graphics techniques is a challenging problem because it requires the difficult step of capturing detailed appearance and geometry models. Neural rendering is an emerging field that employs deep neural networks to implicitly learn scene representations encapsulating both geometry and appearance from 2D observations with or without a coarse geometry. However, existing approaches in this field often show blurry renderings or suffer from slow rendering process. We propose Neural Sparse Voxel Fields (NSVF), a new neural scene representation for fast and high-quality free-viewpoint rendering.

Here is the official repo for the paper:

We also provide our unofficial implementation for:

Table of contents



Requirements and Installation

This code is implemented in PyTorch using fairseq framework.

The code has been tested on the following system:

  • Python 3.7
  • PyTorch 1.4.0
  • Nvidia apex library (optional)
  • Nvidia GPU (Tesla V100 32GB) CUDA 10.1

Only learning and rendering on GPUs are supported.

To install, first clone this repo and install all dependencies:

pip install -r requirements.txt

Then, run

pip install --editable ./

Or if you want to install the code locally, run:

python setup.py build_ext --inplace

Dataset

You can download the pre-processed synthetic and real datasets used in our paper. Please also cite the original papers if you use any of them in your work.

Dataset Download Link Notes on Dataset Split
Synthetic-NSVF download (.zip) 0_* (training) 1_* (validation) 2_* (testing)
Synthetic-NeRF download (.zip) 0_* (training) 1_* (validation) 2_* (testing)
BlendedMVS download (.zip) 0_* (training) 1_* (testing)
Tanks&Temples download (.zip) 0_* (training) 1_* (testing)

Prepare your own dataset

To prepare a new dataset of a single scene for training and testing, please follow the data structure:

<dataset_name>
|-- bbox.txt         # bounding-box file
|-- intrinsics.txt   # 4x4 camera intrinsics
|-- rgb
    |-- 0.png        # target image for each view
    |-- 1.png
    ...
|-- pose
    |-- 0.txt        # camera pose for each view (4x4 matrices)
    |-- 1.txt
    ...
[optional]
|-- test_traj.txt    # camera pose for free-view rendering demonstration (4N x 4)

where the bbox.txt file contains a line describing the initial bounding box and voxel size:

x_min y_min z_min x_max y_max z_max initial_voxel_size

Note that the file names of target images and those of the corresponding camera pose files are not required to be exactly the same. However, the orders of these two kinds of files (sorted by string) must match. The datasets are split with view indices. For example, "train (0..100), valid (100..200) and test (200..400)" mean the first 100 views for training, 100-199th views for validation, and 200-399th views for testing.

Train a new model

Given the dataset of a single scene ({DATASET}), we use the following command for training an NSVF model to synthesize novel views at 800x800 pixels, with a batch size of 4 images per GPU and 2048 rays per image. By default, the code will automatically detect all available GPUs.

In the following example, we use a pre-defined architecture nsvf_base with specific arguments:

  • By setting --no-sampling-at-reader, the model only samples pixels in the projected image region of sparse voxels for training.
  • By default, we set the ray-marching step size to be the ratio 1/8 (0.125) of the voxel size which is typically described in the bbox.txt file.
  • It is optional to turn on --use-octree. It will build a sparse voxel octree to speed-up the ray-voxel intersection especially when the number of voxels is larger than 10000.
  • By setting --pruning-every-steps as 2500, the model performs self-pruning at every 2500 steps.
  • By setting --half-voxel-size-at and --reduce-step-size-at as 5000,25000,75000, the voxel size and step size are halved at 5k, 25k and 75k, respectively.

Note that, although above parameter settings are used for most of the experiments in the paper, it is possible to tune these parameters to achieve better quality. Besides the above parameters, other parameters can also use default settings.

Besides the architecture nsvf_base, you may check other architectures or define your own architectures in the file fairnr/models/nsvf.py.

python -u train.py ${DATASET} \
    --user-dir fairnr \
    --task single_object_rendering \
    --train-views "0..100" --view-resolution "800x800" \
    --max-sentences 1 --view-per-batch 4 --pixel-per-view 2048 \
    --no-preload \
    --sampling-on-mask 1.0 --no-sampling-at-reader \
    --valid-views "100..200" --valid-view-resolution "400x400" \
    --valid-view-per-batch 1 \
    --transparent-background "1.0,1.0,1.0" --background-stop-gradient \
    --arch nsvf_base \
    --initial-boundingbox ${DATASET}/bbox.txt \
    --use-octree \
    --raymarching-stepsize-ratio 0.125 \
    --discrete-regularization \
    --color-weight 128.0 --alpha-weight 1.0 \
    --optimizer "adam" --adam-betas "(0.9, 0.999)" \
    --lr 0.001 --lr-scheduler "polynomial_decay" --total-num-update 150000 \
    --criterion "srn_loss" --clip-norm 0.0 \
    --num-workers 0 \
    --seed 2 \
    --save-interval-updates 500 --max-update 150000 \
    --virtual-epoch-steps 5000 --save-interval 1 \
    --half-voxel-size-at  "5000,25000,75000" \
    --reduce-step-size-at "5000,25000,75000" \
    --pruning-every-steps 2500 \
    --keep-interval-updates 5 --keep-last-epochs 5 \
    --log-format simple --log-interval 1 \
    --save-dir ${SAVE} \
    --tensorboard-logdir ${SAVE}/tensorboard \
    | tee -a $SAVE/train.log

The checkpoints are saved in {SAVE}. You can launch tensorboard to check training progress:

tensorboard --logdir=${SAVE}/tensorboard --port=10000

There are more examples of training scripts to reproduce the results of our paper under examples.

Evaluation

Once the model is trained, the following command is used to evaluate rendering quality on the test views given the {MODEL_PATH}.

python validate.py ${DATASET} \
    --user-dir fairnr \
    --valid-views "200..400" \
    --valid-view-resolution "800x800" \
    --no-preload \
    --task single_object_rendering \
    --max-sentences 1 \
    --valid-view-per-batch 1 \
    --path ${MODEL_PATH} \
    --model-overrides '{"chunk_size":512,"raymarching_tolerance":0.01,"tensorboard_logdir":"","eval_lpips":True}' \

Note that we override the raymarching_tolerance to 0.01 to enable early termination for rendering speed-up.

Free Viewpoint Rendering

Free-viewpoint rendering can be achieved once a model is trained and a rendering trajectory is specified. For example, the following command is for rendering with a circle trajectory (angular speed 3 degree/frame, 15 frames per GPU). This outputs per-view rendered images and merge the images into a .mp4 video in ${SAVE}/output as follows:

By default, the code can detect all available GPUs.

python render.py ${DATASET} \
    --user-dir fairnr \
    --task single_object_rendering \
    --path ${MODEL_PATH} \
    --model-overrides '{"chunk_size":512,"raymarching_tolerance":0.01}' \
    --render-beam 1 --render-angular-speed 3 --render-num-frames 15 \
    --render-save-fps 24 \
    --render-resolution "800x800" \
    --render-path-style "circle" \
    --render-path-args "{'radius': 3, 'h': 2, 'axis': 'z', 't0': -2, 'r':-1}" \
    --render-output ${SAVE}/output \
    --render-output-types "color" "depth" "voxel" "normal" --render-combine-output \
    --log-format "simple"

Our code also supports rendering for given camera poses. For instance, the following command is for rendering with the camera poses defined in the 200-399th files under folder ${DATASET}/pose:

python render.py ${DATASET} \
    --user-dir fairnr \
    --task single_object_rendering \
    --path ${MODEL_PATH} \
    --model-overrides '{"chunk_size":512,"raymarching_tolerance":0.01}' \
    --render-save-fps 24 \
    --render-resolution "800x800" \
    --render-camera-poses ${DATASET}/pose \
    --render-views "200..400" \
    --render-output ${SAVE}/output \
    --render-output-types "color" "depth" "voxel" "normal" --render-combine-output \
    --log-format "simple"

The code also supports rendering with camera poses defined in a .txt file. Please refer to this example.

Extract the Geometry

We also support running marching cubes to extract the iso-surfaces as triangle meshes from a trained NSVF model and saved as {SAVE}/{NAME}.ply.

python extract.py \
    --user-dir fairnr \
    --path ${MODEL_PATH} \
    --output ${SAVE} \
    --name ${NAME} \
    --format 'mc_mesh' \
    --mc-threshold 0.5 \
    --mc-num-samples-per-halfvoxel 5

It is also possible to export the learned sparse voxels by setting --format 'voxel_mesh'. The output .ply file can be opened with any 3D viewers such as MeshLab.

License

NSVF is MIT-licensed. The license applies to the pre-trained models as well.

Citation

Please cite as

@article{liu2020neural,
  title={Neural Sparse Voxel Fields},
  author={Liu, Lingjie and Gu, Jiatao and Lin, Kyaw Zaw and Chua, Tat-Seng and Theobalt, Christian},
  journal={NeurIPS},
  year={2020}
}
Comments
  • Reproducibility on real dataset

    Reproducibility on real dataset

    Hello! Thank you for open-sourcing this amazing work.

    I have attempted to reproduce your research results on real, inward facing dataset and struggled to achieve photo-realistic results. After a thorough process of elimination, I make an educated guess that the problem is with NSVF's robustness to slightly perturbated camera poses. Running on the same colmap camera poses, we observed that the original NeRF model is significantly more robust to camera pose inaccuracies.

    To reproduce: Run colmap on synthetic Lego to get non-ground-truth camera poses. Train model with original configurations.

    Here is an example: Run colmap on synthetic Lego dataset, with exhaustive matching.

    Now we compare training results on three sets of camera poses: 1) ground truth, 2) ground truth + additive gaussian noise (std=0.01), 3) colmap camera poses in NSVF's coordinate frame convention. We can see that colmap camera poses does not produce desirable result.

    Here is a snapshot of the loss function (pink=ground truth poses, blue=colmap). Note that training on colmap camera poses cannot converge to the same photorealistic results regardless of training time.

    Here is another example on a real captured inward facing dataset:

    bug 
    opened by yxie20 21
  • CUDA kernel failed : invalid device function

    CUDA kernel failed : invalid device function

    Hi: The script reported "CUDA kernel failed : invalid device function void svo_intersect_point_kernel_wrapper(int, int, int, float, int, const float*, const float*, const float*, const int*, int*, float*, float*) at L:384 in fairnr/clib/src/intersect_gpu.cu" when I try to train a network. The detial imformation are shown below:

    2020-10-21 12:31:48 | INFO | fairnr_cli.train | model nsvf_base, criterion SRNLossCriterion 2020-10-21 12:31:48 | INFO | fairnr_cli.train | num. model params: 574865 (num. trained: 574852) 2020-10-21 12:31:50 | INFO | fairseq.utils | CUDA enviroments for all 1 workers 2020-10-21 12:31:50 | INFO | fairseq.utils | rank 0: capabilities = 7.5 ; total memory = 10.761 GB ; name = GeForce RTX 2080 Ti 2020-10-21 12:31:50 | INFO | fairseq.utils | CUDA enviroments for all 1 workers 2020-10-21 12:31:50 | INFO | fairnr_cli.train | training on 1 GPUs 2020-10-21 12:31:50 | INFO | fairnr_cli.train | max tokens per GPU = None and max sentences per GPU = 1 2020-10-21 12:31:50 | INFO | fairseq.trainer | no existing checkpoint found checkpoints/robot/checkpoint_last.pt 2020-10-21 12:31:50 | INFO | fairseq.trainer | loading train data for epoch 1 2020-10-21 12:31:50 | INFO | fairseq.trainer | NOTE: your device may support faster training with --fp16 Building EasyOctree done. total #nodes = 1505, terminal #nodes = 660 (time taken 0.214959 s) CUDA kernel failed : invalid device function void svo_intersect_point_kernel_wrapper(int, int, int, float, int, const float*, const float*, const float*, const int*, int*, float*, float*) at L:384 in fairnr/clib/src/intersect_gpu.cu

    Do you have any idea to solve such a problem?

    opened by NNNNAI 20
  • AttributeError: module 'fairnr' has no attribute 'clib'

    AttributeError: module 'fairnr' has no attribute 'clib'

    Hi When I am training the network I find the following import error. Probably its a minor issue. Am I missing some step?

    root@684ba01c705d:/nitthilan/source_code/multiview_rendering/NSVF# python -u train.py ${DATASET} --user-dir fairnr --task single_object_rendering --train-views "0..100" --view-resolution "800x800" --max-sentences 1 --view-per-batch 4 --pixel-per-view 2048 --no-preload --sampling-on-mask 1.0 --no-sampling-at-reader --valid-views "100..200" --valid-view-resolution "400x400" --valid-view-per-batch 1 --transparent-background "1.0,1.0,1.0" --background-stop-gradient --arch nsvf_base --initial-boundingbox ${DATASET}/bbox.txt --use-octree --raymarching-stepsize-ratio 0.125 --discrete-regularization --color-weight 128.0 --alpha-weight 1.0 --optimizer "adam" --adam-betas "(0.9, 0.999)" --lr 0.001 --lr-scheduler "polynomial_decay" --total-num-update 150000 --criterion "srn_loss" --clip-norm 0.0 --num-workers 0 --seed 2 --save-interval-updates 500 --max-update 150000 --virtual-epoch-steps 5000 --save-interval 1 --half-voxel-size-at "5000,25000,75000" --reduce-step-size-at "5000,25000,75000" --pruning-every-steps 2500 --keep-interval-updates 5 --keep-last-epochs 5 --log-format simple --log-interval 1 --save-dir ${SAVE} --tensorboard-logdir ${SAVE}/tensorboard | tee -a $SAVE/train.log Traceback (most recent call last): File "train.py", line 7, in from fairnr_cli.train import cli_main File "/nitthilan/source_code/multiview_rendering/NSVF/fairnr_cli/train.py", line 26, in from fairnr import ResetTrainerException File "/nitthilan/source_code/multiview_rendering/NSVF/fairnr/init.py", line 11, in from . import data, tasks, models, modules, criterions, clib File "/nitthilan/source_code/multiview_rendering/NSVF/fairnr/models/init.py", line 15, in module = importlib.import_module('fairnr.models.' + model_name) File "/opt/conda/lib/python3.6/importlib/init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "/nitthilan/source_code/multiview_rendering/NSVF/fairnr/models/multi_nsvf.py", line 15, in from fairnr.models.nsvf import NSVFModel, base_architecture File "/nitthilan/source_code/multiview_rendering/NSVF/fairnr/models/nsvf.py", line 24, in from fairnr.models.fairnr_model import BaseModel File "/nitthilan/source_code/multiview_rendering/NSVF/fairnr/models/fairnr_model.py", line 22, in from fairnr.modules.encoder import get_encoder File "/nitthilan/source_code/multiview_rendering/NSVF/fairnr/modules/init.py", line 15, in module = importlib.import_module('fairnr.modules.' + model_name) File "/opt/conda/lib/python3.6/importlib/init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "/nitthilan/source_code/multiview_rendering/NSVF/fairnr/modules/encoder.py", line 23, in from fairnr.clib import ( File "/nitthilan/source_code/multiview_rendering/NSVF/fairnr/clib/init.py", line 28, in import fairnr.clib._ext as _ext AttributeError: module 'fairnr' has no attribute 'clib' root@684ba01c705d:/nitthilan/source_code/multiview_rendering/NSVF#

    opened by nitthilan 15
  • Program exits unexpectedly

    Program exits unexpectedly

    Describe the bug When we run the code for the Bike dataset, I see that the code exits unexpectedly. The dataloader process gets terminated

    To Reproduce Command I used for running:

    python -u train.py ${DATASET} --user-dir fairnr --task single_object_rendering --train-views "0..100" --view-resolution "800x800" --max-sentences 1 --view-per-batch 2 --pixel-per-view 2048 --no-preload --sampling-on-mask 1.0 --no-sampling-at-reader --valid-views "100..200" --valid-view-resolution "400x400" --valid-view-per-batch 1 --transparent-background "1.0,1.0,1.0" --background-stop-gradient --arch nsvf_base --initial-boundingbox ${DATASET}/bbox.txt --raymarching-stepsize-ratio 0.125 --discrete-regularization --color-weight 128.0 --alpha-weight 1.0 --optimizer "adam" --adam-betas "(0.9, 0.999)" --lr 0.001 --lr-scheduler "polynomial_decay" --total-num-update 150000 --criterion "srn_loss" --clip-norm 0.0 --num-workers 2 --seed 2 --save-interval-updates 500 --max-update 150000 --virtual-epoch-steps 5000 --save-interval 1 --half-voxel-size-at "5000,25000,75000" --reduce-step-size-at "5000,25000,75000" --pruning-every-steps 2500 --keep-interval-updates 5 --keep-last-epochs 5 --log-format simple --log-interval 1 --save-dir ${SAVE} --tensorboard-logdir ${SAVE}/tensorboard | tee -a $SAVE/train.log

    image

    Probably this is something minor.

    Regards, K. J. Nitthilan

    opened by nitthilan 14
  • issue with splitting volume

    issue with splitting volume

    Amazing work, Thanks for sharing the source!

    I run into some problem while training, after the first volume splitting, part of the volume that should be occupied become empty. I am curious if this is a bug or because package version issue. I am using python 3.8, pytorch 1.60.

    Thanks! IMG_0508

    bug 
    opened by TuotuoLi 12
  • Windows 10

    Windows 10

    Is your feature request related to a problem? Please describe. I'm always frustrated when I cant try pytorch/cuda/python things under windows

    Describe the solution you'd like what you want to happen : smooth install

    Describe alternatives you've considered any alternative solutions conda or wsl ubuntu working way

    Additional context wsl ubuntu windows 10 has problem with cuda conda windows 10 has problem with vc14++ compilation allmost on torchsearchsorted

    opened by Pascal66 11
  • No ray-voxel intersections occurring: 'NoneType' object has no attribute 'new_ones'

    No ray-voxel intersections occurring: 'NoneType' object has no attribute 'new_ones'

    Dataset to recreate

    Describe the bug I've been able to get NSVF to successfully run locally on the supplied datasets, but I'm running into errors when using my own custom dataset. I converted my dataset to match the format described in the README and set the bounding box dimensions to the minima and maxima of the translation coordinates among all extrinsic camera matrices (pose matrices). I calculated the voxel size according to the volume of these boundaries.

    Running train.py with the supplied arguments results in the following error:

    File "train.py", line 20, in <module>
        cli_main()
      File "/home/ubuntu/CSM/NSVF/fairnr_cli/train.py", line 373, in cli_main
        main(args)
      File "/home/ubuntu/CSM/NSVF/fairnr_cli/train.py", line 104, in main
        should_end_training = train(args, trainer, task, epoch_itr)
      File "/usr/lib/python3.7/contextlib.py", line 74, in inner
        return func(*args, **kwds)
      File "/home/ubuntu/CSM/NSVF/fairnr_cli/train.py", line 181, in train
        log_output = trainer.train_step(samples)
      File "/usr/lib/python3.7/contextlib.py", line 74, in inner
        return func(*args, **kwds)
      File "/home/ubuntu/.local/lib/python3.7/site-packages/fairseq/trainer.py", line 431, in train_step
        ignore_grad=is_dummy_batch,
      File "/home/ubuntu/CSM/NSVF/fairnr/tasks/neural_rendering.py", line 300, in train_step
        return super().train_step(sample, model, criterion, optimizer, update_num, ignore_grad)
      File "/home/ubuntu/.local/lib/python3.7/site-packages/fairseq/tasks/fairseq_task.py", line 351, in train_step
        loss, sample_size, logging_output = criterion(model, sample)
      File "/home/ubuntu/.local/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in __call__
        result = self.forward(*input, **kwargs)
      File "/home/ubuntu/CSM/NSVF/fairnr/criterions/rendering_loss.py", line 42, in forward
        net_output = model(**sample)
      File "/home/ubuntu/.local/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in __call__
        result = self.forward(*input, **kwargs)
      File "/home/ubuntu/CSM/NSVF/fairnr/models/fairnr_model.py", line 77, in forward
        results = self._forward(ray_start, ray_dir, **kwargs)
      File "/home/ubuntu/CSM/NSVF/fairnr/models/nsvf.py", line 91, in _forward
        all_results['missed'] = fill_in((fullsize, ), hits, all_results['missed'], 1.0).view(S, V, P)
      File "/home/ubuntu/CSM/NSVF/fairnr/data/geometry.py", line 306, in fill_in
        output = input.new_ones(*shape) * initial
    AttributeError: 'NoneType' object has no attribute 'new_ones'
    

    I investigated further and determined that this means no rays are intersecting with the voxels during training. I assume that this is due to an issue with my bounding box setup. To recreate this, here is my dataset.

    Is there an issue with the way I'm using my camera pose matrices to set my bounding box dimensions? Are there other steps I could take to ensure that at least some intersections are occurring between the rays and voxels?

    opened by dukeeagle 8
  • Query: raymarching_tolerance and BackgroundField

    Query: raymarching_tolerance and BackgroundField

    raymarching_tolerance - Is this field used only during rendering? Can this be used while training too? i.e. reduce the number of steps to accumulate the sigma value?

    Is the BackgroundField used during training? I do not see it being used. How is the background color taken care of during the training process

    opened by nitthilan 5
  • Build my own dataset for training

    Build my own dataset for training

    Thanks for your excellent work first. I'm working on my own dataset for free-viewpoint rendering and interested in your work. Since rgb, pose and intrinsic datas are prepared, how can I get the bbox data like the style in your datasets?

    opened by zrw97402 5
  • why to add a 10% bias on x?

    why to add a 10% bias on x?

    in fairnr/modules/encoder.py line 384 points[:, 0] += (self.voxel_size / 10) # why? move all the x a little right why do you here add a bias on x? does it affects a lot?

    opened by chensjtu 4
  • Build is not working

    Build is not working

    Describe the bug There are build failures:

    $ pip install --editable ./
    Obtaining file:///home/user/dev/NSVF
    Installing collected packages: fairnr
      Running setup.py develop for fairnr
        ERROR: Command errored out with exit status 1:
         command: /home/user/miniconda3/envs/python37/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/user/dev/NSVF/setup.py'"'"'; __file__='"'"'/home/user/dev/NSVF/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps
             cwd: /home/user/dev/NSVF/
        Complete output (120 lines):
        running develop
        running egg_info
        writing fairnr.egg-info/PKG-INFO
        writing dependency_links to fairnr.egg-info/dependency_links.txt
        writing entry points to fairnr.egg-info/entry_points.txt
        writing top-level names to fairnr.egg-info/top_level.txt
        reading manifest file 'fairnr.egg-info/SOURCES.txt'
        writing manifest file 'fairnr.egg-info/SOURCES.txt'
        running build_ext
        building 'fairnr.clib._ext' extension
        Emitting ninja build file /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/build.ninja...
        Compiling objects...
        Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
        /home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/cuda/__init__.py:104: UserWarning:
        NVIDIA GeForce RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
        The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70.
        If you want to use the NVIDIA GeForce RTX 3090 GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/
        
          warnings.warn(incompatible_device_warn.format(device_name, capability, " ".join(arch_list), device_name))
        [1/6] c++ -MMD -MF /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/intersect.o.d -pthread -B /home/user/miniconda3/envs/python37/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/TH -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/user/miniconda3/envs/python37/include/python3.7m -c -c /home/user/dev/NSVF/fairnr/clib/src/intersect.cpp -o /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/intersect.o -O2 -Ifairnr/clib/include -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
        FAILED: /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/intersect.o
        c++ -MMD -MF /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/intersect.o.d -pthread -B /home/user/miniconda3/envs/python37/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/TH -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/user/miniconda3/envs/python37/include/python3.7m -c -c /home/user/dev/NSVF/fairnr/clib/src/intersect.cpp -o /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/intersect.o -O2 -Ifairnr/clib/include -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
        cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
        /home/user/dev/NSVF/fairnr/clib/src/intersect.cpp:6:10: fatal error: intersect.h: No such file or directory
            6 | #include "intersect.h"
              |          ^~~~~~~~~~~~~
        compilation terminated.
        [2/6] c++ -MMD -MF /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/octree.o.d -pthread -B /home/user/miniconda3/envs/python37/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/TH -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/user/miniconda3/envs/python37/include/python3.7m -c -c /home/user/dev/NSVF/fairnr/clib/src/octree.cpp -o /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/octree.o -O2 -Ifairnr/clib/include -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
        FAILED: /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/octree.o
        c++ -MMD -MF /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/octree.o.d -pthread -B /home/user/miniconda3/envs/python37/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/TH -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/user/miniconda3/envs/python37/include/python3.7m -c -c /home/user/dev/NSVF/fairnr/clib/src/octree.cpp -o /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/octree.o -O2 -Ifairnr/clib/include -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
        cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
        /home/user/dev/NSVF/fairnr/clib/src/octree.cpp:6:10: fatal error: octree.h: No such file or directory
            6 | #include "octree.h"
              |          ^~~~~~~~~~
        compilation terminated.
        [3/6] c++ -MMD -MF /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/binding.o.d -pthread -B /home/user/miniconda3/envs/python37/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/TH -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/user/miniconda3/envs/python37/include/python3.7m -c -c /home/user/dev/NSVF/fairnr/clib/src/binding.cpp -o /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/binding.o -O2 -Ifairnr/clib/include -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
        FAILED: /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/binding.o
        c++ -MMD -MF /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/binding.o.d -pthread -B /home/user/miniconda3/envs/python37/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/TH -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/user/miniconda3/envs/python37/include/python3.7m -c -c /home/user/dev/NSVF/fairnr/clib/src/binding.cpp -o /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/binding.o -O2 -Ifairnr/clib/include -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
        cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
        /home/user/dev/NSVF/fairnr/clib/src/binding.cpp:6:10: fatal error: intersect.h: No such file or directory
            6 | #include "intersect.h"
              |          ^~~~~~~~~~~~~
        compilation terminated.
        [4/6] c++ -MMD -MF /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/sample.o.d -pthread -B /home/user/miniconda3/envs/python37/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/TH -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/user/miniconda3/envs/python37/include/python3.7m -c -c /home/user/dev/NSVF/fairnr/clib/src/sample.cpp -o /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/sample.o -O2 -Ifairnr/clib/include -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
        FAILED: /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/sample.o
        c++ -MMD -MF /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/sample.o.d -pthread -B /home/user/miniconda3/envs/python37/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/TH -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/user/miniconda3/envs/python37/include/python3.7m -c -c /home/user/dev/NSVF/fairnr/clib/src/sample.cpp -o /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/sample.o -O2 -Ifairnr/clib/include -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
        cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
        /home/user/dev/NSVF/fairnr/clib/src/sample.cpp:6:10: fatal error: sample.h: No such file or directory
            6 | #include "sample.h"
              |          ^~~~~~~~~~
        compilation terminated.
        [5/6] /usr/local/cuda-11.0/bin/nvcc --generate-dependencies-with-compile --dependency-output /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/sample_gpu.o.d -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/TH -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/user/miniconda3/envs/python37/include/python3.7m -c -c /home/user/dev/NSVF/fairnr/clib/src/sample_gpu.cu -o /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/sample_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O2 -Ifairnr/clib/include -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_70,code=compute_70 -gencode=arch=compute_70,code=sm_70 -std=c++14
        FAILED: /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/sample_gpu.o
        /usr/local/cuda-11.0/bin/nvcc --generate-dependencies-with-compile --dependency-output /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/sample_gpu.o.d -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/TH -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/user/miniconda3/envs/python37/include/python3.7m -c -c /home/user/dev/NSVF/fairnr/clib/src/sample_gpu.cu -o /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/sample_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O2 -Ifairnr/clib/include -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_70,code=compute_70 -gencode=arch=compute_70,code=sm_70 -std=c++14
        /home/user/dev/NSVF/fairnr/clib/src/sample_gpu.cu:11:10: fatal error: cuda_utils.h: No such file or directory
           11 | #include "cuda_utils.h"
              |          ^~~~~~~~~~~~~~
        compilation terminated.
        [6/6] /usr/local/cuda-11.0/bin/nvcc --generate-dependencies-with-compile --dependency-output /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/intersect_gpu.o.d -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/TH -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/user/miniconda3/envs/python37/include/python3.7m -c -c /home/user/dev/NSVF/fairnr/clib/src/intersect_gpu.cu -o /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/intersect_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O2 -Ifairnr/clib/include -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_70,code=compute_70 -gencode=arch=compute_70,code=sm_70 -std=c++14
        FAILED: /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/intersect_gpu.o
        /usr/local/cuda-11.0/bin/nvcc --generate-dependencies-with-compile --dependency-output /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/intersect_gpu.o.d -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/TH -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/user/miniconda3/envs/python37/include/python3.7m -c -c /home/user/dev/NSVF/fairnr/clib/src/intersect_gpu.cu -o /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/intersect_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O2 -Ifairnr/clib/include -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_70,code=compute_70 -gencode=arch=compute_70,code=sm_70 -std=c++14
        /home/user/dev/NSVF/fairnr/clib/src/intersect_gpu.cu:11:10: fatal error: cuda_utils.h: No such file or directory
           11 | #include "cuda_utils.h"
              |          ^~~~~~~~~~~~~~
        compilation terminated.
        ninja: build stopped: subcommand failed.
        Traceback (most recent call last):
          File "/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1673, in _run_ninja_build
            env=env)
          File "/home/user/miniconda3/envs/python37/lib/python3.7/subprocess.py", line 512, in run
            output=stdout, stderr=stderr)
        subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.
        
        The above exception was the direct cause of the following exception:
        
        Traceback (most recent call last):
          File "<string>", line 1, in <module>
          File "/home/user/dev/NSVF/setup.py", line 35, in <module>
            'fairnr-train = fairseq_cli.train:cli_main'
          File "/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/setuptools/__init__.py", line 153, in setup
            return distutils.core.setup(**attrs)
          File "/home/user/miniconda3/envs/python37/lib/python3.7/distutils/core.py", line 148, in setup
            dist.run_commands()
          File "/home/user/miniconda3/envs/python37/lib/python3.7/distutils/dist.py", line 966, in run_commands
            self.run_command(cmd)
          File "/home/user/miniconda3/envs/python37/lib/python3.7/distutils/dist.py", line 985, in run_command
            cmd_obj.run()
          File "/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/setuptools/command/develop.py", line 34, in run
            self.install_for_development()
          File "/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/setuptools/command/develop.py", line 136, in install_for_development
            self.run_command('build_ext')
          File "/home/user/miniconda3/envs/python37/lib/python3.7/distutils/cmd.py", line 313, in run_command
            self.distribution.run_command(command)
          File "/home/user/miniconda3/envs/python37/lib/python3.7/distutils/dist.py", line 985, in run_command
            cmd_obj.run()
          File "/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/setuptools/command/build_ext.py", line 79, in run
            _build_ext.run(self)
          File "/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/Cython/Distutils/old_build_ext.py", line 186, in run
            _build_ext.build_ext.run(self)
          File "/home/user/miniconda3/envs/python37/lib/python3.7/distutils/command/build_ext.py", line 340, in run
            self.build_extensions()
          File "/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 708, in build_extensions
            build_ext.build_extensions(self)
          File "/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/Cython/Distutils/old_build_ext.py", line 195, in build_extensions
            _build_ext.build_ext.build_extensions(self)
          File "/home/user/miniconda3/envs/python37/lib/python3.7/distutils/command/build_ext.py", line 449, in build_extensions
            self._build_extensions_serial()
          File "/home/user/miniconda3/envs/python37/lib/python3.7/distutils/command/build_ext.py", line 474, in _build_extensions_serial
            self.build_extension(ext)
          File "/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/setuptools/command/build_ext.py", line 196, in build_extension
            _build_ext.build_extension(self, ext)
          File "/home/user/miniconda3/envs/python37/lib/python3.7/distutils/command/build_ext.py", line 534, in build_extension
            depends=ext.depends)
          File "/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 538, in unix_wrap_ninja_compile
            with_cuda=with_cuda)
          File "/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1359, in _write_ninja_file_and_compile_objects
            error_prefix='Error compiling objects for extension')
          File "/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1683, in _run_ninja_build
            raise RuntimeError(message) from e
        RuntimeError: Error compiling objects for extension
        ----------------------------------------
    ERROR: Command errored out with exit status 1: /home/user/miniconda3/envs/python37/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/user/dev/NSVF/setup.py'"'"'; __file__='"'"'/home/user/dev/NSVF/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps Check the logs for full command output.
    

    What is peculiar is that copy pasting individual build commands, such as the follow one, compile correctly on their own.

    $ c++ -MMD -MF /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/intersect.o.d -pthread -B /home/user/miniconda3/envs/python37/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/TH -I/home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/user/miniconda3/envs/python37/include/python3.7m -c -c /home/user/dev/NSVF/fairnr/clib/src/intersect.cpp -o /home/user/dev/NSVF/build/temp.linux-x86_64-3.7/fairnr/clib/src/intersect.o -O2 -Ifairnr/clib/include -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    In file included from /home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/ATen/Parallel.h:140,
    [...]
                     from /home/user/dev/NSVF/fairnr/clib/src/intersect.cpp:6:
    /home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/ATen/ParallelOpenMP.h:83: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
       83 | #pragma omp parallel for if ((end - begin) >= grain_size)
          | 
    In file included from /home/user/miniconda3/envs/python37/lib/python3.7/site-packages/torch/include/c10/core/DeviceType.h:8,
    [...]
                     from /home/user/dev/NSVF/fairnr/clib/src/intersect.cpp:6:
    /home/user/dev/NSVF/fairnr/clib/src/intersect.cpp: In function ‘std::tuple<at::Tensor, at::Tensor, at::Tensor> ball_intersect(at::Tensor, at::Tensor, at::Tensor, float, int)’:
    fairnr/clib/include/utils.h:12:24: warning: ‘at::DeprecatedTypeProperties& at::Tensor::type() const’ is deprecated: Tensor.type() is deprecated. Instead use Tensor.options(), which in many cases (e.g. in a constructor) is a drop-in replacement. If you were using data from type(), that is now available from Tensor itself, so instead of tensor.type().scalar_type(), use tensor.scalar_type() instead and instead of tensor.type().backend() use tensor.device(). [-Wdeprecated-declarations]
       12 |     TORCH_CHECK(x.type().is_cuda(), #x " must be a CUDA tensor"); \
    [...]
    

    The individual build command finishes with warnings but without errors.

    To Reproduce Following the README, at the installation step, running either pip install --editable ./ or python setup.py build_ext --inplace results in the build failures detailed above.

    Expected behavior Build should pass.

    Desktop (please complete the following information): Ubuntu 18, CUDA 11.3, g++ version 9.3.0.

    opened by nvibd 4
  • Bump numpy from 1.16.4 to 1.22.0

    Bump numpy from 1.16.4 to 1.22.0

    Bumps numpy from 1.16.4 to 1.22.0.

    Release notes

    Sourced from numpy's releases.

    v1.22.0

    NumPy 1.22.0 Release Notes

    NumPy 1.22.0 is a big release featuring the work of 153 contributors spread over 609 pull requests. There have been many improvements, highlights are:

    • Annotations of the main namespace are essentially complete. Upstream is a moving target, so there will likely be further improvements, but the major work is done. This is probably the most user visible enhancement in this release.
    • A preliminary version of the proposed Array-API is provided. This is a step in creating a standard collection of functions that can be used across application such as CuPy and JAX.
    • NumPy now has a DLPack backend. DLPack provides a common interchange format for array (tensor) data.
    • New methods for quantile, percentile, and related functions. The new methods provide a complete set of the methods commonly found in the literature.
    • A new configurable allocator for use by downstream projects.

    These are in addition to the ongoing work to provide SIMD support for commonly used functions, improvements to F2PY, and better documentation.

    The Python versions supported in this release are 3.8-3.10, Python 3.7 has been dropped. Note that 32 bit wheels are only provided for Python 3.8 and 3.9 on Windows, all other wheels are 64 bits on account of Ubuntu, Fedora, and other Linux distributions dropping 32 bit support. All 64 bit wheels are also linked with 64 bit integer OpenBLAS, which should fix the occasional problems encountered by folks using truly huge arrays.

    Expired deprecations

    Deprecated numeric style dtype strings have been removed

    Using the strings "Bytes0", "Datetime64", "Str0", "Uint32", and "Uint64" as a dtype will now raise a TypeError.

    (gh-19539)

    Expired deprecations for loads, ndfromtxt, and mafromtxt in npyio

    numpy.loads was deprecated in v1.15, with the recommendation that users use pickle.loads instead. ndfromtxt and mafromtxt were both deprecated in v1.17 - users should use numpy.genfromtxt instead with the appropriate value for the usemask parameter.

    (gh-19615)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    CLA Signed dependencies 
    opened by dependabot[bot] 0
  • How to produce datatset for training in NSVF?

    How to produce datatset for training in NSVF?

    Hi I am trying to prepare dataset from a short video(about 4~5 seconds) or photos of hundreds. I have looked your paper and github but I don't see how to make dataset. I am new to this field so would you please provide the way to prepare dataset in details?

    opened by djbicycle 0
  • Hello, it says in your code that the hypernetwork does not work, but why?And your paper shows that hypernetwork works

    Hello, it says in your code that the hypernetwork does not work, but why?And your paper shows that hypernetwork works

    I want to use the hypernetwork of SRNs into a NeRF model. But after I ported the network, the model couldn't be trained. So i want to know, how did you make it? I would appreciate your reply.

    opened by ZYY-666 2
  • Request for official results on testing set.

    Request for official results on testing set.

    Is your feature request related to a problem? Please describe. We want to have a qualitative comparison in our work.

    Describe the solution you'd like We hope the official test-set results on Synthetic-NeRF, Synthetic-NSVF, BlendedMVS, and Tanks and Temples can be released for qualitative comparisons in future studies.

    opened by sunset1995 0
  • How to get the correct bbox.txt intrinsic.txt ?

    How to get the correct bbox.txt intrinsic.txt ?

    I reviewed related issues here but there is still no correct way found. Can you please provide your code to get the values? I'm struggling to reproduce your result with the provided images(especially real, big size objects using colmap. not small, synthetic ones from blender). I've always failed to get the reasonable rendering results, just seen so ambiguous images.

    for example, in Wineholder case, colmap shows reasonable result so that I can trust it. image

    (below is Fountain case, image

    But the bbox.txt using "https://github.com/yxie20/lego_nsvf/tree/master/poses" is : -1.7405309358237018 0.8937903721375522 0.8837398050743352 2.0868807956960875 3.9037096850320445 3.3750371294069716 0.3239107072481569

    and your provided bbox.txt is

    -0.5884649 -0.44142154 -0.12279411 0.78653513 0.43357844 0.8772059 0.125.

    it's totally different!

    camera intrinsics are little similar

    888.0 0.0 400.0 0.0 0.0 888.0 400.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0

    VS

    875.000000 400.000000 400.000000 0. 0. 0. 0. 0. 1. 800 800 ~
    Thank you!

    opened by dedoogong 5
Owner
Meta Research
Meta Research
Differentiable Neural Computers, Sparse Access Memory and Sparse Differentiable Neural Computers, for Pytorch

Differentiable Neural Computers and family, for Pytorch Includes: Differentiable Neural Computers (DNC) Sparse Access Memory (SAM) Sparse Differentiab

ixaxaar 302 Dec 14, 2022
Open source repository for the code accompanying the paper 'Non-Rigid Neural Radiance Fields Reconstruction and Novel View Synthesis of a Deforming Scene from Monocular Video'.

Non-Rigid Neural Radiance Fields This is the official repository for the project "Non-Rigid Neural Radiance Fields: Reconstruction and Novel View Synt

Facebook Research 296 Dec 29, 2022
This repository contains the source code for the paper "DONeRF: Towards Real-Time Rendering of Compact Neural Radiance Fields using Depth Oracle Networks",

DONeRF: Towards Real-Time Rendering of Compact Neural Radiance Fields using Depth Oracle Networks Project Page | Video | Presentation | Paper | Data L

Facebook Research 281 Dec 22, 2022
Stereo Radiance Fields (SRF): Learning View Synthesis for Sparse Views of Novel Scenes

Stereo Radiance Fields (SRF): Learning View Synthesis for Sparse Views of Novel Scenes

null 111 Dec 29, 2022
Implementation of ICCV2021(Oral) paper - VMNet: Voxel-Mesh Network for Geodesic-aware 3D Semantic Segmentation

VMNet: Voxel-Mesh Network for Geodesic-Aware 3D Semantic Segmentation Created by Zeyu HU Introduction This work is based on our paper VMNet: Voxel-Mes

HU Zeyu 82 Dec 27, 2022
Python code to fuse multiple RGB-D images into a TSDF voxel volume.

Volumetric TSDF Fusion of RGB-D Images in Python This is a lightweight python script that fuses multiple registered color and depth images into a proj

Andy Zeng 845 Jan 3, 2023
This repository contains the code for the CVPR 2021 paper "GIRAFFE: Representing Scenes as Compositional Generative Neural Feature Fields"

GIRAFFE: Representing Scenes as Compositional Generative Neural Feature Fields Project Page | Paper | Supplementary | Video | Slides | Blog | Talk If

null 1.1k Dec 30, 2022
Voxel Transformer for 3D object detection

Voxel Transformer This is a reproduced repo of Voxel Transformer for 3D object detection. The code is mainly based on OpenPCDet. Introduction We provi

null 173 Dec 25, 2022
for taichi voxel-challange event

Taichi Voxel Challenge Figure: result of python3 example6.py. Please replace the image above (demo.jpg) with yours, so that other people can immediate

Liming Xu 20 Nov 26, 2022
Voxel Set Transformer: A Set-to-Set Approach to 3D Object Detection from Point Clouds (CVPR 2022)

Voxel Set Transformer: A Set-to-Set Approach to 3D Object Detection from Point Clouds (CVPR2022)[paper] Authors: Chenhang He, Ruihuang Li, Shuai Li, L

Billy HE 141 Dec 30, 2022
PyTorch implementation of paper "Neural Scene Flow Fields for Space-Time View Synthesis of Dynamic Scenes", CVPR 2021

Neural Scene Flow Fields PyTorch implementation of paper "Neural Scene Flow Fields for Space-Time View Synthesis of Dynamic Scenes", CVPR 20

Zhengqi Li 585 Jan 4, 2023
Implementation of the method proposed in the paper "Neural Descriptor Fields: SE(3)-Equivariant Object Representations for Manipulation"

Neural Descriptor Fields (NDF) PyTorch implementation for training continuous 3D neural fields to represent dense correspondence across objects, and u

null 167 Jan 6, 2023
Source code for Acorn, the precision farming rover by Twisted Fields

Acorn precision farming rover This is the software repository for Acorn, the precision farming rover by Twisted Fields. For more information see twist

Twisted Fields 198 Jan 2, 2023
This is the code for Deformable Neural Radiance Fields, a.k.a. Nerfies.

Deformable Neural Radiance Fields This is the code for Deformable Neural Radiance Fields, a.k.a. Nerfies. Project Page Paper Video This codebase conta

Google 1k Jan 9, 2023
Code for KiloNeRF: Speeding up Neural Radiance Fields with Thousands of Tiny MLPs

KiloNeRF: Speeding up Neural Radiance Fields with Thousands of Tiny MLPs Check out the paper on arXiv: https://arxiv.org/abs/2103.13744 This repo cont

Christian Reiser 373 Dec 20, 2022
Code release for DS-NeRF (Depth-supervised Neural Radiance Fields)

Depth-supervised NeRF: Fewer Views and Faster Training for Free Project | Paper | YouTube Pytorch implementation of our method for learning neural rad

null 524 Jan 8, 2023
This is the code for "HyperNeRF: A Higher-Dimensional Representation for Topologically Varying Neural Radiance Fields".

HyperNeRF: A Higher-Dimensional Representation for Topologically Varying Neural Radiance Fields This is the code for "HyperNeRF: A Higher-Dimensional

Google 702 Jan 2, 2023
Code release for NeRF (Neural Radiance Fields)

NeRF: Neural Radiance Fields Project Page | Video | Paper | Data Tensorflow implementation of optimizing a neural representation for a single scene an

null 6.5k Jan 1, 2023
PaddleRobotics is an open-source algorithm library for robots based on Paddle, including open-source parts such as human-robot interaction, complex motion control, environment perception, SLAM positioning, and navigation.

简体中文 | English PaddleRobotics paddleRobotics是基于paddle的机器人开源算法库集,包括人机交互、复杂运动控制、环境感知、slam定位导航等开源算法部分。 人机交互 主动多模交互技术TFVT-HRI 主动多模交互技术是通过视觉、语音、触摸传感器等输入机器人

null 185 Dec 26, 2022