google-research

Форк
0

README.md

JaxBARF

This is a JAX implementation of BARF: Bundle-Adjusting Neural Radiance Fields. A PyTorch implementation of BARF has been open-sourced by the authors here.

This code is built on JaxNeRF modified to match the BARF model (trainable camera poses, modified MLP, etc).

Citation

If you use this software package, please also cite the original BARF paper:

@inproceedings{lin2021barf,
  title={BARF: Bundle-Adjusting Neural Radiance Fields},
  author={Lin, Chen-Hsuan and Ma, Wei-Chiu and Torralba, Antonio and Lucey, Simon},
  booktitle={IEEE International Conference on Computer Vision ({ICCV})},
  year={2021}
}

Training on Blender scenes.

To train the model on Blender scenes you first need to download the data provided with the NERF Repo.

Installation.

Installation (environment setup) commands are contained in the following script:

./install.sh

Training on a GPU.

The following script trains the model sequentially for each Blender scene:

./train.sh

The results from the training are reported below (juxtaposed with PyTorch-BARF results).

Rotation error (in degree)

SceneChairDrumsFicusHotdogLegoMaterialsMicShipMean
Pytorch-BARF0.0430.0430.0850.2480.0820.8440.0710.0750.193
JaxBARF0.1300.0530.0940.2620.0860.4050.0790.1080.152

Translation error

SceneChairDrumsFicusHotdogLegoMaterialsMicShipMean
Pytorch-BARF0.4280.2250.4741.3080.2912.6920.3010.3260.756
JaxBARF0.470.170.401.410.251.780.250.380.639

Note: Since the initial camera pose perturbations are generated randomly, the results are sensitive to choice of random seed, and we do not expect the results to match exactly between implementations. We see a large variance in results across random seeds for both the JAX-BARF and PyTorch-BARF libraries.

Evaluation

The included evaluation file src/eval.py does not implement the test-time optimization used in BARF so the view synthesis results will not be comparable to the BARF synthesis examples.

Implementation Notes

Many of the modules like camera.py are translated almost line-by-line from PyTorch which might not result in the best or most efficient JAX implementation.

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.