TLDR: Synthetic data offers enhanced diversity for computer vision models, addressing biases and performance gaps seen with real datasets. This article delves into the groundbreaking potential of synthetic data in warehouse vision systems.
Introduction to Synthetic Data and its Relevance in Computer Vision
One of the biggest pitfalls of building computer vision models is unpredictable lack of diversity in real datasets that can lead to bias or other performance failures of models when they are put into production. Synthetic computer vision data offers an opportunity to generate diverse datasets that can be engineered to model diversity that will occur in the real world, but which might be hard to capture in real data.
- SIGN UP FOR YOUR FREE TRIAL AND USE CONTENT CODE ‘BOXES’
Utilizing Procedural Technology in Synthetic Data Creation
Synthetic Data Engineers, tasked with generating simulated or synthetic sensor data, often turn to film and game workflows for tools and techniques to render realistic-looking imagery. Procedural technologies are one tool that can be employed to generate high levels of variety in film and game sequences… and in synthetic data, too. Procedural technology takes many forms from algorithmically generating realistic landscapes to creating intricately detailed ivy vines with the click of a button. Procedural workflows have an advantage over more manually intensive modeling techniques because they typically are implemented to allow users to input parameters to tweak the output until they get a desired result.
Exploring the Warehouse Channel on the Rendered.ai Platform
To demonstrate the application of procedural technology to a synthetic data application, I will be talking about the Warehouse Channel on the Rendered.ai platform. Synthetic data is become essential for computer vision applications across many domains, including for modern warehouse operations in robotics, monitoring, and inventory management.
Benefits of Data Scalability with Synthetic Data
- Cost-efficiency: Synthetic data is cost-effective, eliminating expensive and time consuming real-world data collection.
- Scalability: Synthetic data can be created to represent diverse scenarios, including unsafe conditions, helping train detection algorithms on difficult to obtain data.
- Robotics: By simulating a wide range of scenarios, robots can be better trained for real-world conditions.
- Logistics: Synthetic data helps to tune algorithms, reducing the total amount of real data required for training.
- Inventory Management: Simulating different scenarios with synthetic data can lead to improved stock prediction and reduced waste.
- Risk Minimization: Synthetic data does not require unusual on-location data collection, reducing disruptions in actual operations.
Including synthetic data for AI training is part of a digitalization strategy that can help to better manage and streamline warehouse operations in a more cost effective manner than using real data alone.
To learn how to use this channel you can check out this video
Insights into the Geometry Node Tool in Rendered.ai
The Warehouse Channel is a synthetic data application that runs in the Rendered.ai platform enabling a user to creates fully labeled synthetic images of a warehouse environment with boxes on shelves based on parameters set in a graph. A Graph in Rendered.ai is a tool for parametrically controlling synthetic data runs and can be manipulated through a simple web experience.
Using the Warehouse channel with a configured Graph, Rendered.ai can generate image from the perspective of a randomly placed camera in the scene showing randomly placed boxes, shelves, and selected other warehouse equipment. Each run of the channel generates image training chips and pixel-accurate annotations for boxes that are visible in the image, with calculated obstruction based on location of shelves, forklifts, pushcarts, or other scene content. The use for synthetic data in a warehouse environment like this could vary from robotics training to inventory and damage inspection systems.
The result of this channel is synthetic data with a “theoretically infinite” amount of visual variety. I have a degree in mathematics and thus intentionally put quotations around those words, but I will go through some of the inner workings of this channel to show off how this procedural environment workflow could actually achieve nearly endless combinations of boxes, shelves, and other equipment.
The channel relies on blender’s geometry node tool. If you’re unfamiliar with this tool, the workflow is a node graph that takes geometry inputs and allows the user to apply transforms, extrudes, and a large variety of modifications to procedurally create interesting objects. The tool also has the ability to “Instance” objects onto points which is a key component of how our virtual warehouse are created.
To illustrate this concept of instancing based on point locations, notice the blue and pink boxes in the above screenshot. These boxes represent points at which shelf geometry will be instanced. The light blue boxes are where the loading dock geometry will be instanced and the green box near the far left is where the warehouse entrance has been selected to be created for this particular randomized arrangement of points. You can see below what it looks like once the geometry is instanced.
Points are created and positioned through point math and manipulation based on the system’s parameters, captured in a Graph in Rendered.ai. For example, the X and Y values set the dimensions for the overall space in which points can be created and the shelf spacing affects how closely those points will be splaced apart. Points are also spaced to accommodate the dimensions of the shelf geometry chosen for this case. The modular way this graph that describes this scene is setup allows easy changes to variables such as shelf size and spacing. One of my secrets is that repurposing and reusing systems is common when it comes to implementing procedural workflows and I’ve been able to draw upon my past experience to make this fairly sophisticated example.
Once the warehouse’s shelves are created, points are calculated randomly on the shelves to locate box instances. Box instances vary in dimension and, depending on their size, will have additional boxes stacked on top of them. The design of each box is also randomly calculated per point. For those familiar with complex film and game workflows, there is no use of tiling in this channel such that, each shelf has a unique layout and will be entirely different for each randomized run of the channel. This consistent uniqueness per run is the key essence in trying to achieve the aforementioned “infinite” possibilities. This huge variety and diversity resulting from procedural techniques is essentially impossible using most traditional 3D modeling methods.
Creating a procedural environment system like this allows for quick creation of captivating and believable visuals, but its modular nature allows it to be adapted and repurposed for a wide variety of use cases.
Broader Applications of Procedural Techniques in Synthetic Data
Some examples that could use procedural techniques to help generate synthetic data include:
- Animated crowds with diverse walking behaviors
- Plants in industrial container farming
- Trees and buildings in simulated satellite imagery
- Cars in parking lots
- Consumer goods on store shelves
- … and much, much more
Who Stands to Benefit from Synthetic Data Applications?
The Warehouse Channel wasn’t made for a specific client but show off the art of the possible. The results are purely random and thus vary significantly from image to image, which may be undesirable for some kinds of AI training tasks. Focusing certain parameters and constraints can produce much more specific results. Perhaps you’re looking for something just like this and we can tune this channel to your particular box types or warehouse shelf configurations… or perhaps you’re looking to create grocery store shelves filled with varying foodstuffs. Procedural techniques can be applied to a huge variety of use cases.
- Contact us to learn more