About us

Synthetic Images

An introduction to synthetic images:


Synthetic images are computer generated images which represent the real world.
By simulating the data in a virtual environment, it is possible to influence every parameter that has an impact on the images. All possible light scenarios, as well as camera positions, environments and actions can be displayed.
Thanks to these features it is possible to make each representation unique and due to the help of cloud computing the whole process of image and annotation generation is highly scalable.

The data can be used for any kind of computer vision tasks such as object detection, image classification and instance segmentation.

Our clients experienced that the use of limitless unique data has a very positive influence on the performance of the model.

Avoiding the need of collecting large amounts of hand annotated real-world data:


We present a service for creating huge amounts of synthetic images for object detection and segmentation tasks which you can use to train your deep neural networks on.
Due to the lack of affordable, high quality data for custom object detection and segmentation tasks there are a lot of fields being unexplored. Our solution helps to generate meaningful synthetic images for training of neural networks in a short amount of time containing pixel wise annotation with a high, stable quality of annotations throughout the whole dataset.

The technology:


Problem statement:

Solving Computer Vision tasks with Deep Neural Networks has become state of the art in many areas in recent years. Not relying on rule based methods makes Deep Learning models more flexible and applicable to very domain specific tasks. But those models are hungry for loads of data, in our case images, which always need to be annotated by humans. Current workarounds in the field of Deep Learning such as Transfer Learning helps but still a lot of annotated data is required to develop a robust model for object detection or segmentation.

Current solution:

After taking images of the objects of interest those images need to be checked for quality and then sent to either a domain expert who has enough knowledge to annotate the images with the right class or to an annotating worker inside or outside the company developing the solution. For some tasks domain experts are the only source of high quality annotated ground truth data, but since their time is limited the amount of data is the bottleneck.
In other cases domain knowledge is not required, but since the annotation is done by humans the dataset is prone to human error.
Each of the solutions involves either a lot of overhead due to management of the labeling process or involves a lot of resources locked in if you take care of the whole l resources locked in if you take care of the whole labeling process yourself.

Our solution:

By combining our knowledge in the field of Deep Learning and Computer Generated Imagery we have developed a solution which is capable of creating lots of pixel wise annotated images within a short time frame.
Considering the fact that the dataset is created synthetically we assure that the dataset will be unbiased due to quality control steps during the creation process. Since a strong variation in the environment allows the neural network to focus on the important elements of the image, we assure that each image is unique.

Since trained models should work in various environments as e.g. in SaaS solutions for consumers or end customers it is nearly impossible to create a sufficient dataset which represents the variety of our real world. The bigger the project and the higher the number of objects of interests the more time it takes to first plan the creation of the dataset and more resources are locked into managing quality and working on preprocessing methods due to the lack of labels.

Synthetic images offer the best trade off between quality and price for training object detection and segmentation models.
Since our images are created by computers we not only get perfect labels on each object in the image but also have pixel wise annotations and depth maps which assures that you get the best labels possible for object detection and image segmentation tasks.

Best results can be achieved by combining a small amount of annotated real world images from the domain with a huge portion of synthetic images. The model will have the ability to generalize due to randomness in the synthetic images and memorize to some degree the domain specific feature from the real world images.

Advantages of synthetic images:


Fast data generation process:

Because all data is created virtually on the computer it is possible to speed up the creation process with more computing power. This gives us the possibility to create data in a very short period of time.

Synthetic images are very useful during the software development process to verify that simple aspects like file handling or complex image processing algorithms work as expected.

The fact that all data is computer generated avoids a complex data collection pipeline:
For example, quality assurance models can be trained and implemented before production starts. Vast amounts of video and image data could be used to train a flying vehicle for training without the need for a drone to fly over a city or a country to collect the required data.

Precise data:

The labels are generated simultaneously with the creation of the ground truth image. This ensures that the labels are accurate across all images.
Because the data contains true randomness, no image appears more than once. This means that the model can be prepared for almost any real world scenarios.

Multi channel data:

Besides the simultaneous creation of the ground truth labels and images, depth maps and representations of the normals of the objects are also created.

Full control on dataset specifications:

Before the data generation process is started all possible parameters that define the ground truth images can be set.
For example, you can decide if the camera is static or not, what possible positions it can take.
Furthermore, it is possible to set up a fixed environment or to make the scene random. This could be achieved by constantly changing light and background, by transforming or scaling the scene or by adding and removing distracting objects.