improved-nerfmm  by ventusff

Pytorch re-implementation for NeRF with unknown camera parameters

created 4 years ago
281 stars

Top 93.7% on sourcepulse

GitHubView on GitHub
Project Summary

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

  • Install: pip install torch torchvision numpy pyyaml addict imageio imageio-ffmpeg scikit-image tqdm tensorboardX opencv-python pytorch3d>=0.3.0 or use environment.yml.
  • Prerequisites: Python >= 3.5, CUDA.
  • Setup: Clone repo with git lfs for pre-trained models. Add project root to PYTHONPATH using source set_env.sh.
  • Docs: Project, Paper

Highlighted Details

  • Supports SIREN-based NeRF for potentially smoother geometry and improved metrics.
  • Integrates CLIP-based perceptual loss for few-shot learning scenarios.
  • Offers flexible rotation (quaternion, axis-angle, rotation6D) and intrinsics (square, ratio, exp) representations.
  • Reproduces results on LLFF datasets, personal photos, and YouTube video clips.

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.

Health Check
Last commit

3 years ago

Responsiveness

1 week

Pull Requests (30d)
0
Issues (30d)
0
Star History
1 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.