Image Recognition Guided Example

Learn how to load and preprocess data, import a network, perform transfer learning, and test the network using deep learning.

To get started:

  1. 下载代码.
  2. Open the code inMATLAB.
  3. Follow along with the steps below.

Don’t have access?

Time to Complete:
15–30 minutes
Level:
Beginner/Intermediate

Need a refresher?Try a free, interactive tutorial.

Step 1

Load and Preprocess Data

You can use large datasets with deep learning, so proper data management is important; however, the dataset in this example is small for demonstration purposes.

  • Import your data using animageDatastore. TheimageDatastorefunction automatically labels the images based on folder names.
  • To train the model, split your data into two categories: “training” to train the model and “testing data” to test how the model works on new data (set aside for Step 4, Test the Network).
  • Visualize random images from the dataset to see how the data appears.
  • ClickRun Sectionto run the code.

Key things to remember:

  • TheimageDatastoreis home to your data throughout these steps and any future deep learning project with images.
  • Image-based apps can significantly speed up common preprocessing tasks like cropping, labeling, and registering images.

Step 2

Import Network

The example in this step uses GoogLeNet to import a deep learning model and modify it for transfer learning, but you can also import models and architectures from TensorFlow, PyTorch, and ONNX.

  • Import the model and make sure the data is ready.
  • Use the Deep Network Designer app to interactively alter the model for a new task. For pre-processing, make sure the images are the right size expected by the deep learning model.
  • Try sample images to see what the model predicts. Incorrect predictions may occur when the model has not been trained to recognize the data (see Step 3, Transfer Learning).
  • ClickRun Sectionto run the code.

Key things to remember:

  • Use a variety of pretrained models as a starting point for transfer learning.
  • Your data must be the right size or your model will error.

Step 3

Transfer Learning

For this step, you want to modify the model to work with your specific data. Models can take a long time to train depending on your hardware and dataset size.

  • Prepare your model by replacing the final fully connected layer with a new fully connected layer based on the number of categories you have. This example uses 4 categories.
  • Replace the final classification layer to reset it for your task.
  • To train your model, clickRun Section. Be sure that you have already run the code in steps 1 and 2. Training takes ~60 seconds.

Key things to remember:

  • Customize deep learning to perform your specific task by modifying the model.
  • Use the深层网络设计师应用to simplify the transfer learning process.

Step 4

Test Network

在最后的步骤中,您要来验证我们的模型rks on new data. You need to classify the test data (set aside from Step 1, Load and Preprocess Data) and calculate the classification accuracy.

  • Run the classify command to test all of the images in your test set and display the accuracy—in this case, 90%.
  • Select images in your test set to visualize with the corresponding labels.

Key things to remember:

  • Use a flexible model that works with new data or circumstances and not just the data learned during training.
  • For more advanced AI solutions, use Explainable AI techniques to uncover why a model is predicting a certain category.

You can also follow along with the video below:

Video length is 4:13.

See the links below to continue with more image recognition tasks or keep exploring deep learning with related applications.

Johanna Pingel

Connect with Johanna, MathWorks Deep Learning Expert