A Python library that includes an end-to-end 3D Gaussian splatting pipeline without requiring the compilation of hundreds of dependencies.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file easy_3dgs-0.1.0.tar.gz.
File metadata
- Download URL: easy_3dgs-0.1.0.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65a0aeadd39d2751ce9ced60ed0cf942ba3f979ddc2c6669ceaca7aa2c24b95c
|
|
| MD5 |
ddd4907d4c9fadf4420c26e062e193bd
|
|
| BLAKE2b-256 |
7128683d6b6f7972dd24d4de0b16d1e5e2ff55a10caf48d8a726b7963ddd3b7f
|
File details
Details for the file easy_3dgs-0.1.0-cp310-cp310-manylinux_2_35_x86_64.whl.
File metadata
- Download URL: easy_3dgs-0.1.0-cp310-cp310-manylinux_2_35_x86_64.whl
- Upload date:
- Size: 12.9 kB
- Tags: CPython 3.10, manylinux: glibc 2.35+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb9fde9c2310a56fd79e11a6cab4644d6886750578ac630299c436657a7d0989
|
|
| MD5 |
24ce02b6c499b2bc16314fdb0a1ad104
|
|
| BLAKE2b-256 |
c11abfcf3fdf96f6ce1ec6780f5a05fe535c4cc6236f615bb210ff925f9a2982
|