Automating ML and IoT with cloud-based image rendering, training, and device delivery
By Preston Holmes and Adrian Graham, Solution Architects, Google Cloud Platform
Since its release as an open source machine learning framework, TensorFlow has become a popular ecosystem for deep neural network development. With it, developers can run different parts of a machine learning workflow in different environments. Because TensorFlow can be used as an open runtime for both training and inference, it can be deployed in a variety of computing environments, including "edge" or IoT scenarios.
Previously, we published details on how our Inception v3 vision model can be used to generate a custom image classifier through transfer learning. Although deep neural networks excel in image classification, even with this transfer learning, training images need to be carefully collected and labeled. This is often done manually and the accuracy of the model is often limited by lack of available training images. That’s why today we’re releasing a pair of solutions that demonstrate how to help solve common challenges around automating the process of creating and deploying TensorFlow models to edge computing IoT devices.
3D rendering to generate training data
The first solution demonstrates how automating the generation of 3D renders in the cloud can produce well-organized and pre-labeled image training data, suitable to feed into a custom TensorFlow image classifier. This allows large catalogs of objects to be photorealistically rendered, tuned to the environments where predictions need to occur. Machine learning models benefit from very large training sets, which can be accomplished by rendering many variations of the training data. Camera angles, lighting, dirty camera lenses, backgrounds, etc, can be modified in the training data, all with completely automatic and accurate labels.
Automating training and deployment of model revisions
The second solution describes one approach to a workflow that automates the steps repeated during production iteration of:
- Training a model on the cloud using cloud-hosted datasets (in this case, the rendered 3D images)
- Efficiently packaging the trained model artifact with runtime components that can serve predictions from that model outside of the cloud environment
- Helping to securely and scalably deliver different releases of that model to target devices
Packaged models deployed to devices can run predictions from the model without a connection to the internet in scenarios where execution of predictions needs to be high, but they may also choose to report the results of prediction to cloud services, significantly reducing the amount of data that needs to be transmitted and processed by the cloud.
Cloud-based photorealistic 3D rendering, deep neural networks, and IoT software automation are all areas that have been challenging and complex, we hope you too can leverage Google Cloud in order to start deploying machine learning to train your IoT workloads today.