Developing a Pallet Detection Model Using OpenUSD and Synthetic Data

By iteratively developing with synthetic data, our team developed a pallet detection model that works on real-world images.

John Welsh
12 min readintermediate
--
View Original

Overview

The article discusses the development of a pallet detection model using synthetic data and OpenUSD, focusing on the challenges of detecting pallets in complex warehouse environments. It highlights the advantages of synthetic data generation for training machine learning models and details the iterative process of improving model accuracy through data diversity and various detection tasks.

What You'll Learn

1

How to utilize synthetic data generation for training machine learning models

2

Why iterating on data diversity is crucial for improving model accuracy

3

How to implement a pallet detection model using OpenUSD

Prerequisites & Requirements

  • Familiarity with machine learning concepts and deep learning pipelines
  • Access to NVIDIA Omniverse and related synthetic data generation tools(optional)

Key Questions Answered

What is synthetic data generation and how is it used in machine learning?
Synthetic Data Generation (SDG) is a technique that creates data for training neural networks using rendered images instead of real-world images. This method allows for known object shapes and locations, enabling the generation of various annotations like bounding boxes and segmentation masks, which are crucial for training models efficiently.
How did the team improve the accuracy of the pallet detection model?
The team improved the model's accuracy by adding more images of diverse pallet configurations, increasing the dataset from 2,000 to about 4,000 images. This included using the USD Scene Construction Utilities to create realistic stacked pallet scenes, which better reflected real-world distributions.
What challenges did the model face when detecting pallets in complex scenes?
The model initially struggled with detecting pallets that were not on the floor and distinguishing between instances of pallets. This was evident in tests where the model failed to accurately segment pallets in cluttered warehouse environments, indicating a need for better training data distribution.
What are the benefits of using synthetic data in model training?
Using synthetic data allows for rapid iteration on model designs without the high costs associated with manual data annotation. It enables experimentation with different sensor modalities and task definitions, making it easier to refine models before investing in real-world data collection.

Key Statistics & Figures

Total synthetic images used for training
25,000
The final model was trained on approximately 25,000 rendered images to improve detection accuracy.
Initial synthetic images rendered
2,000
The team started with a dataset of about 2,000 synthetic images to test basic detection capabilities.
Additional images added to improve dataset diversity
2,000
An additional 2,000 images were created to enhance the dataset, bringing the total to about 4,000 images.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Framework
Openusd
Used for creating and managing synthetic data environments.
Platform
Nvidia Omniverse
Facilitates synthetic data generation and model training.
Framework
Pytorch
Used for training the resnet18-based Unet segmentation model.

Key Actionable Insights

1
Utilize synthetic data generation to quickly prototype machine learning models without the overhead of manual data annotation.
This approach allows teams to test various configurations and model architectures rapidly, which is especially beneficial when real-world data is scarce or expensive to obtain.
2
Iteratively increase data diversity to address specific model weaknesses identified during testing.
By analyzing model performance on real-world data, teams can pinpoint failure cases and selectively augment their training datasets, leading to improved accuracy and robustness.
3
Experiment with different sensor modalities and annotation strategies to enhance detection capabilities.
Using a combination of synthetic data and real-world data can provide a more comprehensive training set, allowing models to generalize better across various scenarios.

Common Pitfalls

1
Failing to diversify training data can lead to model bias and poor generalization.
If a model is trained on a limited dataset, it may not perform well on real-world data due to overfitting to the specific examples seen during training.
2
Relying solely on synthetic data without real-world validation can result in inaccurate models.
While synthetic data is useful for initial training, incorporating real-world data is essential for ensuring that models can handle the complexities of actual environments.

Related Concepts

Synthetic Data Generation
Machine Learning Model Training
Computer Vision Techniques
Nvidia Omniverse Tools