diff --git a/README.md b/README.md
index 88a4f48..4f1200d 100644
--- a/README.md
+++ b/README.md
@@ -71,8 +71,8 @@ The optimizer uses PyTorch and CUDA extensions in a Python environment to produc
### Software Requirements
- Conda (recommended for easy setup)
-- C++ Compiler for PyTorch extensions (we *recommend* Visual Studio 2019 for Windows)
-- CUDA 11 SDK for PyTorch extensions (we used 11.8)
+- C++ Compiler for PyTorch extensions (we used Visual Studio 2019 for Windows)
+- CUDA SDK 11.7+ for PyTorch extensions (we used 11.8, **known issues with 11.6**)
- C++ Compiler and CUDA SDK must be compatible
### Setup
@@ -269,8 +269,8 @@ We provide two interactive iewers for our method: remote and real-time. Our view
- CUDA-ready GPU with Compute Capability 7.0+ (only for Real-Time Viewer)
### Software Requirements
-- C++ Compiler (we *recommend* Visual Studio 2019 for Windows)
-- CUDA 11 Developer SDK (we used 11.8)
+- Visual Studio or g++, **not Clang** (we used Visual Studio 2019 for Windows)
+- CUDA SDK 11 (we used 11.8)
- CMake (recent version, we used 3.24)
- 7zip (only on Windows)
@@ -289,7 +289,7 @@ cmake --build build --target install --config RelWithDebInfo
```
You may specify a different configuration, e.g. ```Debug``` if you need more control during development.
-#### Ubuntu
+#### Ubuntu 22.04
You will need to install a few dependencies before running the project setup.
```shell
# Dependencies
@@ -300,6 +300,14 @@ cmake -Bbuild .
cmake --build build --target install
```
+#### Ubuntu 20.04
+Backwards compatibility with Focal Fossa is not fully tested, but building SIBR should still work by first invoking
+```shell
+git checkout fossa_compatibility
+git submodule update --init
+```
+and then continuing with the steps for Ubuntu 22.04.
+
### Navigation in SIBR Viewers
The SIBR interface provides several methods of navigating the scene. By default, you will be started with an FPS navigator, which you can control with ```W, A, S, D, Q, E``` for camera translation and ```I, K, J, L, U, O``` for rotation. Alternatively, you may want to use a Trackball-style navigator (select from the floating menu). You can also snap to a camera from the data set with the ```Snap to``` button or find the closest camera with ```Snap to closest```. The floating menues also allow you to change the navigation speed. You can use the ```Scaling Modifier``` to control the size of the displayed Gaussians, or show the initial point cloud.
@@ -374,9 +382,24 @@ SIBR has many other functionalities, please see the [documentation](https://sibr
-## Preprocessing your own Scenes
+## Processing your own Scenes
-Our rasterization requires a SIMPLE_PINHOLE or PINHOLE camera model for COLMAP data. We provide a converter script ```convert.py```, to extract undistorted images and SfM information. Optionally, you can use ImageMagick to resize the undistorted images. This rescaling is similar to MipNeRF360, i.e., it creates images with 1/2, 1/4 and 1/8 the original resolution in corresponding folders. To use them, please first install a recent version of COLMAP (ideally CUDA-powered) and ImageMagick. Put the images you want to use in a directory ```/input```.
+Our COLMAP loaders expect the following dataset structure in the source path location:
+
+```
+
+|---images
+| |---
+| |---
+| |---...
+|---sparse
+ |---0
+ |---cameras.bin
+ |---images.bin
+ |---points3D.bin
+```
+
+For rasterization, the camera models must be either a SIMPLE_PINHOLE or PINHOLE camera. We provide a converter script ```convert.py```, to extract undistorted images and SfM information from input images. Optionally, you can use ImageMagick to resize the undistorted images. This rescaling is similar to MipNeRF360, i.e., it creates images with 1/2, 1/4 and 1/8 the original resolution in corresponding folders. To use them, please first install a recent version of COLMAP (ideally CUDA-powered) and ImageMagick. Put the images you want to use in a directory ```/input```.
```
|---input
diff --git a/arguments/__init__.py b/arguments/__init__.py
index 582acf3..4ab86f4 100644
--- a/arguments/__init__.py
+++ b/arguments/__init__.py
@@ -72,7 +72,7 @@ class OptimizationParams(ParamGroup):
self.position_lr_init = 0.00016
self.position_lr_final = 0.0000016
self.position_lr_delay_mult = 0.01
- self.posititon_lr_max_steps = 30_000
+ self.position_lr_max_steps = 30_000
self.feature_lr = 0.0025
self.opacity_lr = 0.05
self.scaling_lr = 0.001
diff --git a/scene/gaussian_model.py b/scene/gaussian_model.py
index 8cea495..20a81d4 100644
--- a/scene/gaussian_model.py
+++ b/scene/gaussian_model.py
@@ -126,7 +126,7 @@ class GaussianModel:
self.xyz_scheduler_args = get_expon_lr_func(lr_init=training_args.position_lr_init*self.spatial_lr_scale,
lr_final=training_args.position_lr_final*self.spatial_lr_scale,
lr_delay_mult=training_args.position_lr_delay_mult,
- max_steps=training_args.posititon_lr_max_steps)
+ max_steps=training_args.position_lr_max_steps)
def update_learning_rate(self, iteration):
''' Learning rate scheduling per step '''
diff --git a/submodules/diff-gaussian-rasterization b/submodules/diff-gaussian-rasterization
index c78d81f..fc0cfe9 160000
--- a/submodules/diff-gaussian-rasterization
+++ b/submodules/diff-gaussian-rasterization
@@ -1 +1 @@
-Subproject commit c78d81f56cd5da3cf39f6201984570060128c1aa
+Subproject commit fc0cfe904a7870245437d9bfe17f819d9260281d