Train on an NCore v4 Capture
========================================
.. currentmodule:: gsplat
The :code:`examples/simple_trainer.py` script supports training a
`3D Gaussian Splatting `_
model on an `NCore v4 `_ capture.
Point ``--data-dir`` at the sequence meta-JSON file and set ``--data-type ncore``:
.. code-block:: bash
cd examples
python simple_trainer.py default \
--data-type ncore \
--data-dir /path/to/sequence.json \
--data-factor 1 \
--result-dir results/my_scene \
--init-type lidar
For datasets with FTheta cameras (auto-detected from sequence metadata):
.. code-block:: bash
cd examples
python simple_trainer.py mcmc \
--data-type ncore \
--data-dir /path/to/sequence.json \
--data-factor 1 \
--result-dir results/my_scene \
--init-type lidar \
--with-ut \
--with-eval3d
.. note::
The camera model (pinhole, fisheye, or FTheta) is read automatically from the NCore
sequence metadata. Passing ``--camera-model`` has no effect when ``--data-type ncore``
is used.
.. note::
Training with ``--data-factor`` values other than ``1`` requires that all
camera resolutions are divisible by the factor.
.. note::
World-space normalization (PCA + scale) is applied by default
(``--normalize-world-space`` is ``True``). For outdoor or large-scale captures
where preserving real-world scale matters, pass ``--no-normalize-world-space``.
.. note::
When a sequence contains **more than one camera or lidar sensor**, you must
explicitly specify which sensor(s) to use via ``--ncore-camera-ids`` and/or
``--ncore-lidar-ids``. If omitted, the parser auto-detects sensors but will
raise an error when multiple sensors are present to avoid ambiguity
(e.g. when multiple downscaled variants of the same sensor exist).
.. code-block:: bash
cd examples
python simple_trainer.py default \
--data-type ncore \
--data-dir /path/to/sequence.json \
--ncore-camera-ids camera_front \
--ncore-lidar-ids lidar_top \
...