Syclops is a Python library for generating synthetic data for machine learning.
Project description
Syclops
Syclops
Syclops is a tool for creating synthetic data from 3D virtual environments.
🎯 Features
📷 Photorealistic renderings of the virtual environment with pixel-perfect annotations
📄 No-Code scene and sensor configuration with a simple YAML syntax
🔧 Extensive randomization tools to increase the diversity of the generated data
💾 Asset management and viewer to easily reuse assets across multiple scenes
📦 Easy to use and extend with a modular architecture
🔍 Annotations
Syclops supports a variety of annotated outputs for different use cases. The following outputs are currently supported:
Output | Description |
---|---|
RGB | Rendered color image |
Semantic Segmentation | Semantic segmentation mask with class ids |
Instance Segmentation | Unique instance id for each object in the scene |
Depth | Distance from the camera to each pixel |
Bounding Boxes | Bounding boxes for each object in the scene |
Object Positions | 3D position of each object in the scene |
Point Cloud | 3D location of each pixel in camera space |
Keypoints | Location of keypoints in camera space |
Object Volume | Volume of each object in the scene |
Structured Light | Projected dot pattern for structured light reconstruction |
⚡️Getting Started
Prerequisites
Before you install Syclops
, ensure you have the following prerequisites:
- Python version 3.9 or higher.
We recommend using a virtual environment to avoid potential package conflicts. Below are instructions for setting up with virtualenv
and conda
.
Installing
Using virtualenv
If you don't have virtualenv
installed:
pip install virtualenv
To create and activate a new virtual environment named syclops
:
# For Linux/macOS
virtualenv syclops_venv
source syclops_venv/bin/activate
# For Windows
virtualenv syclops_venv
.\syclops_venv\Scripts\activate
Using conda
If you use Anaconda or Miniconda, you can create a new environment:
conda create --name syclops_venv python=3.9
conda activate syclops_venv
Installing Syclops
Once you have your environment set up and activated:
pip install syclops
Alternatively: Clone and Install from Source
To install Syclops
directly from the source code:
git clone https://github.com/DFKI-NI/syclops.git
cd syclops
pip install .
Run a job
Next, the assets need to be crawled by the pipeline. This only needs to be done once, or if new assets are added.
syclops -c
To run a job, a job file is needed. You can find an example in the syclops/__example_assets__ folder.
To test the installation with the example job file run:
syclops --example-job
To run a job, simply pass the path to the job file to the syclops
command:
syclops -j path/to/job.syclops.yaml
That's all you need to know to render images! 🎉
The rendered data will be in output/<timestamp>
inside of your specified syclops directory.
To quickly visuzalize the data, you can use the dataset viewer tool.
Adjust the output path accordingly.
syclops -da output/2022-09-01_12-00-00
🙏 Acknowledgements
We would like to thank our colleagues Timo Korthals (@tik0), Henning Wübben (@hwuebben), Florian Rahe (@frahe-ama), Thilo Steckel and Stefan Stiene for their valuable feedback during the development of Syclops. Their involvement and the resulting insightful discussions have played a key role in shaping the project and setting its direction.
Syclops was developed in the research project Agri-Gaia. This work was supported by the German Federal Ministry for Economic Affairs and Climate Action within the Agri-Gaia project (grant number: 01MK21004A). The DFKI Niedersachsen (DFKI NI) is sponsored by the Ministry of Science and Culture of Lower Saxony and the VolkswagenStiftung.
Project details
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
File details
Details for the file syclops-1.3.7.tar.gz
.
File metadata
- Download URL: syclops-1.3.7.tar.gz
- Upload date:
- Size: 27.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ffc831ce4e977d7bc71550e045465d0b8dc6a3ad3223d1f040a3faf26a71174 |
|
MD5 | 142377b1fb1e070c7074e7f8efb1a852 |
|
BLAKE2b-256 | d265847711b6bfa07e67f2abc856752dbc0bcc8c22fa0ee636c9dc396e5125fb |
File details
Details for the file syclops-1.3.7-py3-none-any.whl
.
File metadata
- Download URL: syclops-1.3.7-py3-none-any.whl
- Upload date:
- Size: 16.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50689888399353f97d90400adbee3a5a3a58f8ef2e0884fdb9b7e02eb871ecf3 |
|
MD5 | 2b8bee178c9d35804f313d713176e019 |
|
BLAKE2b-256 | 4d23b125bca801a1b45546e0a4b99340c5ac5c06496fa0155744d395db8a70bf |