easy-3dgs
A Python library for 3D Gaussian Splatting, designed to be easy to use and extend.
Features
- Modular Pipeline: The reconstruction process is broken down into a series of modular steps, including feature retrieval, pair generation, feature extraction, feature matching, reconstruction, and image undistortion.
- Extensible: Each step in the pipeline is designed to be easily replaceable with custom implementations.
- HLOC-Based: Leverages the power of Hierarchical Localization (HLOC) for robust and accurate 3D reconstruction.
Getting Started
Prerequisites
- Python 3.10 or later
- Git
Installation
Install from PyPI
You can install the library directly from PyPI using pip:
pip install git+https://github.com/Jourdelune/easy-3dgs.git
pip install git+https://github.com/cvg/Hierarchical-Localization.git
Install from Source
-
Clone the repository:
git clone --recursive https://github.com/Jourdelune/easy-3dgs.git cd easy-3dgs
-
Install dependencies:
pip install -e . pip install git+https://github.com/cvg/Hierarchical-Localization.git
Usage
The main entry point for the library is the ReconstructionPipeline class. Here's a simple example of how to use it:
from pathlib import Path
from easy_3dgs.pipeline import ReconstructionPipeline
from hloc import extract_features, match_features
# Define paths
image_directory = Path("path/to/your/images")
output_directory = Path("outputs/reconstruction")
# Define configurations
retrieval_config = extract_features.confs["netvlad"]
feature_config = extract_features.confs["superpoint_aachen"]
matcher_config = match_features.confs["superpoint+lightglue"]
# Create and run the pipeline
pipeline = ReconstructionPipeline(
retrieval_conf=retrieval_config,
feature_conf=feature_config,
matcher_conf=matcher_config,
num_matched_pairs=5,
)
pipeline.run(image_directory, output_directory)
Project Structure
The project is organized as follows:
├── pyproject.toml
├── README.md
├── run_pipeline.py
├── src
│ └── easy_3dgs
│ ├── __init__.py
│ ├── pipeline
│ │ ├── __init__.py
│ │ ├── orchestrator.py
│ │ ├── feature_extraction
│ │ ├── feature_matching
│ │ ├── feature_retrieval
│ │ ├── image_undistortion
│ │ ├── pair_generation
│ │ └── reconstruction
│ └── third_party
│ └── Hierarchical-Localization
└── test.py
run_pipeline.py: An example script demonstrating how to use theReconstructionPipeline.src/easy_3dgs/pipeline: Contains the core logic for the reconstruction pipeline.src/easy_3dgs/pipeline/orchestrator.py: The main entry point for the library, containing theReconstructionPipelineclass.src/easy_3dgs/third_party: Contains third-party libraries, such as Hierarchical Localization.
To Do
- Add 3d Gaussian Splatting
Contributing
Contributions are welcome! Please feel free to submit a pull request or open an issue.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Metadata
Release files for easy-3dgs 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| easy_3dgs-0.1.0.tar.gz | 7.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| easy_3dgs-0.1.0-cp310-cp310-manylinux_2_35_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.35+ x86-64 | Details |
Total release size: 20.0 kB
Release files / easy_3dgs-0.1.0.tar.gz
| Download URL | easy_3dgs-0.1.0.tar.gz |
|---|---|
| Size | 7.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
65a0aeadd39d2751ce9ced60ed0cf942ba3f979ddc2c6669ceaca7aa2c24b95c
|
|
BLAKE2b-256 checksum How to use checksums |
7128683d6b6f7972dd24d4de0b16d1e5e2ff55a10caf48d8a726b7963ddd3b7f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.2
|
Release files / easy_3dgs-0.1.0-cp310-cp310-manylinux_2_35_x86_64.whl
| Download URL | easy_3dgs-0.1.0-cp310-cp310-manylinux_2_35_x86_64.whl |
|---|---|
| Size | 12.9 kB |
| Tags | CPython 3.10 Linux glibc 2.35+ x86-64 |
|
SHA-256 checksum How to use checksums |
cb9fde9c2310a56fd79e11a6cab4644d6886750578ac630299c436657a7d0989
|
|
BLAKE2b-256 checksum How to use checksums |
c11abfcf3fdf96f6ce1ec6780f5a05fe535c4cc6236f615bb210ff925f9a2982
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.2
|