- Keras - Discussion
- Keras - Useful Resources
- Keras - Quick Guide
- Keras - Pre-Trained Models
- Keras - Real Time Prediction using ResNet Model
- Keras - Applications
- Keras - Time Series Prediction using LSTM RNN
- Keras - Regression Prediction using MPL
- Keras - Convolution Neural Network
- Keras - Model Evaluation and Prediction
- Keras - Model Compilation
- Keras - Models
- Keras - Customized Layer
- Keras - Layers
- Keras - Modules
- Keras - Deep learning
- Keras - Overview of Deep learning
- Keras - Backend Configuration
- Keras - Installation
- Keras - Introduction
- Keras - Home
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Real Time Prediction using ResNet Model
ResNet is a pre-trained model. It is trained using ImageNet. ResNet model weights pre-trained on ImageNet. It has the following syntax −
keras.apppcations.resnet.ResNet50 ( include_top = True, weights = imagenet , input_tensor = None, input_shape = None, poopng = None, classes = 1000 )
Here,
include_top refers the fully-connected layer at the top of the network.
weights refer pre-training on ImageNet.
input_tensor refers optional Keras tensor to use as image input for the model.
input_shape refers optional shape tuple. The default input size for this model is 224x224.
classes refer optional number of classes to classify images.
Let us understand the model by writing a simple example −
Step 1: import the modules
Let us load the necessary modules as specified below −
>>> import PIL >>> from keras.preprocessing.image import load_img >>> from keras.preprocessing.image import img_to_array >>> from keras.apppcations.imagenet_utils import decode_predictions >>> import matplotpb.pyplot as plt >>> import numpy as np >>> from keras.apppcations.resnet50 import ResNet50 >>> from keras.apppcations import resnet50
Step 2: Select an input
Let us choose an input image, Lotus as specified below −
>>> filename = banana.jpg >>> ## load an image in PIL format >>> original = load_img(filename, target_size = (224, 224)) >>> print( PIL image size ,original.size) PIL image size (224, 224) >>> plt.imshow(original) <matplotpb.image.AxesImage object at 0x1304756d8> >>> plt.show()
Here, we have loaded an image (banana.jpg) and displayed it.
Step 3: Convert images into NumPy array
Let us convert our input, Banana into NumPy array, so that it can be passed into the model for the purpose of prediction.
>>> #convert the PIL image to a numpy array >>> numpy_image = img_to_array(original) >>> plt.imshow(np.uint8(numpy_image)) <matplotpb.image.AxesImage object at 0x130475ac8> >>> print( numpy array size ,numpy_image.shape) numpy array size (224, 224, 3) >>> # Convert the image / images into batch format >>> image_batch = np.expand_dims(numpy_image, axis = 0) >>> print( image batch size , image_batch.shape) image batch size (1, 224, 224, 3) >>>
Step 4: Model prediction
Let us feed our input into the model to get the predictions
>>> prepare the image for the resnet50 model >>> >>> processed_image = resnet50.preprocess_input(image_batch.copy()) >>> # create resnet model >>>resnet_model = resnet50.ResNet50(weights = imagenet ) >>> Downloavding data from https://github.com/fchollet/deep-learning-models/releas es/download/v0.2/resnet50_weights_tf_dim_ordering_tf_kernels.h5 102858752/102853048 [==============================] - 33s 0us/step >>> # get the predicted probabipties for each class >>> predictions = resnet_model.predict(processed_image) >>> # convert the probabipties to class labels >>> label = decode_predictions(predictions) Downloading data from https://storage.googleapis.com/download.tensorflow.org/ data/imagenet_class_index.json 40960/35363 [==================================] - 0s 0us/step >>> print(label)
Output
[ [ ( n07753592 , banana , 0.99229723), ( n03532672 , hook , 0.0014551596), ( n03970156 , plunger , 0.0010738898), ( n07753113 , fig , 0.0009359837) , ( n03109150 , corkscrew , 0.00028538404) ] ]
Here, the model predicted the images as banana correctly.
Advertisements