Deep Learning for Computer Vision Using MATLAB
Learn how MATLAB® can help with any part of the deep learning workflow: from preprocessing through deployment. This video provides a high-level overview of deep learning techniques for images and video. It describes the complete workflow, and it shows how MATLAB can help with deep learning applications at various stages, including importing and preprocessing images, importing pretrained models, training models with GPUs, debugging deep learning results, and deploying deep learning models to hardware including embedded GPUs.
Published: 26 Sep 2019
The deep learning framework in MATLAB includes a complete workflow to help you get started quickly, identify problems, and save time.
Whether you’re a beginner or an expert in deep learning, MATLAB can help -- from preprocessing all the way through to deployment.
Designing a deep learning model can be challenging to say the least.
Fortunately, MATLAB has lots of examples to help you get started, and it gives you access to many popular models, designed by experts and trained on millions of images, which offer a great starting point for transfer learning.
MATLAB provides tools to import models from Pytorch and TensorFlow-Keras in addition to ONNX import and export capabilities.
Before you train a model, you need data. Lots of it. Large databases are widely available and you can access these from MATLAB, but to produce any kind of reasonable results, we need to separate the object from “not the object”. How do you label objects in thousands of images without spending weeks?
MATLAB provides apps to help with this challenge. For example,
You can select the object you care about in each image
You can even select the pixels that are part of an object or category. [This is essential for semantic segmentation data]
And you can automate this by using object detectors, [custom or pre-built], to run through an entire video, and produce many images of the object in seconds.
Now it’s time to train the network. With all of that data, and the complicated structure of these networks, this can take hours or days. To help speed this up, we support NVIDIA GPUs.
MATLAB handles transferring your data to the GPU or multiple GPUs, so you don’t need to manually set it up or program it yourself. Scale up to clusters and clouds and train your network more quickly, or even run multiple trainings in parallel.
Here’s a step people sometimes miss: what happens if the trained network doesn’t perform well? MATLAB can help provide insight into your network. You can visualize layers and see what actually happens when an image is passed through the network. You can also visualize the training process to get a sense of how it is going long before it finishes.
At the end of these steps, and probably after a few iterations, you have a fully trained network to perform your task. Now it is time to talk deployment.
MATLAB can help you quickly deploy your code anywhere – including the web, your phone, or embedded GPUs.
It turns out MATLAB code runs prediction on a GPU very quickly. The significant change comes with code generation optimizing the CUDA code -- the code that runs natively on NVIDIA GPUs.
You can clearly see the difference in speed here.
And there is new research on deep learning in other areas too, like speech recognition and text analytics. Here are two examples of non-image deep learning tasks running in MATLAB.
While it does makes deep learning easier and more accessible, MATLAB isn't just a deep learning framework. You have access to everything else MATLAB offers, too.
You can also access other languages within MATLAB. Bring your open source work into MATLAB, and then use our rich visualizations and apps to work with that data.
Check out our website to find out more about the latest capabilities and ways to get started.