Skip to main content

Syclops is a Python library for generating synthetic data for machine learning.

Project description

Syclops

Documentation

cgapp logo
Syclops

Syclops is a tool for creating synthetic data from 3D virtual environments.

Documentation


🎯 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

output-render

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:

  • Tested Python Versions
    • Python 3.9 – 3.11
  • ❌ Not yet compatible with Python 3.12+

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 .

Note for macOS Users

⚠️ IMPORTANT: Syclops is not currently supported on macOS. While installation theoretically might be possible, it has not been tested and likely will not work properly. If you attempt to use Syclops on macOS, Blender would be downloaded as a .dmg file for your architecture (arm64 or x64), but full functionality cannot be guaranteed.

We recommend using Linux or Windows for the best experience with Syclops.

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.

AgriGaia AgriGaia AgriGaia

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

syclops-1.4.4.tar.gz (27.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

syclops-1.4.4-py3-none-any.whl (16.0 MB view details)

Uploaded Python 3

File details

Details for the file syclops-1.4.4.tar.gz.

File metadata

  • Download URL: syclops-1.4.4.tar.gz
  • Upload date:
  • Size: 27.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for syclops-1.4.4.tar.gz
Algorithm Hash digest
SHA256 f00908e2dbf7593471400677503da3e0058d15aba8e821931d3ca443d1be9e20
MD5 f8d2588006c7e002a96059189aef267f
BLAKE2b-256 c061240f95502a93ae3ee12265378673e364e8a5a751c178732dd2eb260d84a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for syclops-1.4.4.tar.gz:

Publisher: deploy_to_pypi.yaml on DFKI-NI/syclops

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file syclops-1.4.4-py3-none-any.whl.

File metadata

  • Download URL: syclops-1.4.4-py3-none-any.whl
  • Upload date:
  • Size: 16.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for syclops-1.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2093ddbc4878952de9a077311cedfd111683c80e79b80cc2f123af73238f572d
MD5 ac1b77ac4408aff4b87d79e1fe1dfd54
BLAKE2b-256 f645a9690ebf4392b80138c98ee98b40cb9c98aafbdd268081a68a1550b41337

See more details on using hashes here.

Provenance

The following attestation bundles were made for syclops-1.4.4-py3-none-any.whl:

Publisher: deploy_to_pypi.yaml on DFKI-NI/syclops

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page