Giter Site home page Giter Site logo

dfki-ni / syclops Goto Github PK

View Code? Open in Web Editor NEW
6.0 5.0 2.0 27.1 MB

Syclops is a tool for creating synthetic data from 3D virtual environments with photorealistic renderings and pixel-perfect annotations.

License: GNU General Public License v3.0

Python 93.75% HTML 0.68% JavaScript 5.58%
3d-rendering annotation asset-management bounding-boxes computer-vision data-generation dataset-creation depth-estimation instance-segmentation keypoints

syclops's Introduction

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:

  • 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.

AgriGaia AgriGaia AgriGaia

syclops's People

Contributors

aelmiger avatar kavonszadkowski avatar tik0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

syclops's Issues

Colliding custom properties are not handled

It just happend, that I already had an asset with a UUID as a custom property field.
I included this object multiple times and noticed, that all transformations were only applied to the first object.
Everything worked, after I deleted the custom properties of the original asset.

To prevent this in the future it might be an idea to:

  1. Prefix the custom properties of syclops in an object
  2. Raise an error if a custom property already exists instead of returning it, like in
    if "UUID" in obj:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.