Pytorch re-implementation for NeRF with unknown camera parameters
Top 93.7% on sourcepulse
This repository provides an unofficial PyTorch re-implementation of NeRF--, a method for learning Neural Radiance Fields from uncalibrated, unordered images without known camera parameters. It's suitable for researchers and practitioners interested in 3D scene reconstruction and novel view synthesis from uncalibrated inputs, offering a more holistic approach than traditional SfM+MVS pipelines.
How It Works
NeRF-- jointly optimizes camera intrinsics, extrinsics, and a NeRF model using only photometric loss. By leveraging the differentiability of NeRF, it computes gradients with respect to camera parameters, enabling simultaneous learning of scene geometry, appearance, and camera poses from raw images. The implementation includes optional enhancements like SIREN-based backbones for smoother scene representations and perceptual loss (CLIP) for few-shot learning.
Quick Start & Requirements
pip install torch torchvision numpy pyyaml addict imageio imageio-ffmpeg scikit-image tqdm tensorboardX opencv-python pytorch3d>=0.3.0
or use environment.yml
.git lfs
for pre-trained models. Add project root to PYTHONPATH using source set_env.sh
.Highlighted Details
Maintenance & Community
The project is actively maintained by the author, with recent updates focusing on efficiency and expanding applicability. Links to related codebases like GRAF and SIREN are provided.
Licensing & Compatibility
The repository does not explicitly state a license. Compatibility for commercial use or closed-source linking is not specified.
Limitations & Caveats
The implementation is unofficial. It is primarily tested on static scenes with forward-facing views and minimal viewport changes; dynamic objects or significant illumination changes may cause training failures. Focal length is assumed to be constant across all input images.
3 years ago
1 week