Classify Image Using Pretrained Network
This example shows how to classify an image using the pretrained deep convolutional neural network GoogLeNet.
GoogLeNet has been trained on over a million images and can classify images into 1000 object categories (such as keyboard, coffee mug, pencil, and many animals). The network has learned rich feature representations for a wide range of images. The network takes an image as input, and then outputs a label for the object in the image together with the probabilities for each of the object categories.
Load Pretrained Network
Load the pretrained GoogLeNet network and the corresponding class names. You can also choose to load a different pretrained network for image classification. This step requires the Deep Learning Toolbox™ Model for GoogLeNet Network support package. If you do not have the required support packages installed, then the software provides a download link.
[net,classNames] = imagePretrainedNetwork("googlenet");
Read and Resize Image
The image that you want to classify must have the same size as the input size of the network. For GoogLeNet, the network input size is the InputSize
property of the image input layer.
Read the image that you want to classify and resize it to the input size of the network. This resizing slightly changes the aspect ratio of the image.
I = imread("peppers.png");
inputSize = net.Layers(1).InputSize;
I = imresize(I,inputSize(1:2));
Classify and Display Image
Classify and display the image with the predicted label. To make predictions with an neural network, convert the data to data type single.
scores = predict(net,single(I)); label = scores2label(scores,classNames); figure imshow(I) title(string(label))
For a more detailed example showing how to also display the top predictions with their associated probabilities, see Classify Image Using GoogLeNet.
For next steps in deep learning, you can use the pretrained network for other tasks. Solve new classification problems on your image data with transfer learning or feature extraction. For examples, see Start Deep Learning Faster Using Transfer Learning and Train Classifiers Using Features Extracted from Pretrained Networks. To try other pretrained networks, see Pretrained Deep Neural Networks.
References
Szegedy, Christian, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, and Andrew Rabinovich. "Going deeper with convolutions." In Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 1-9. 2015.
BVLC GoogLeNet Model. https://github.com/BVLC/caffe/tree/master/models/bvlc_googlenet
See Also
imagePretrainedNetwork
| dlnetwork
| trainingOptions
| trainnet
| scores2label
| Deep Network
Designer